Düğüm iş kuyruğunda geri aramaların bir listesini nasıl alabilirim? (veya Düğüm neden çıkmıyor?)


84

Node.js hakkında şu sayfada yazıyor :

Düğüm, gerçekleştirilecek başka geri arama olmadığında olay döngüsünden çıkar.

Hangi geri aramaların Node'un çıkışını engellediğini bulmanın bir yolu var mı?


2
bu harika bir soru ... olay döngüsünü incelerken sormaya başladığım sorunun aynısı ... sırayı nasıl görebilirim? insanların neden buna karşı oy verdiklerinden emin değilim. ;)
tbarbe

Yanıtlar:


90

process._getActiveHandles()Ve kullanabilirsinizprocess._getActiveRequests()

Node.js posta listesinde bu tartışmaya bakın .

güncelleme: bunun için iyi bir paket var - https://github.com/mafintosh/why-is-node-running


2
Çok teşekkür ederim, aradığım buydu. Daha önce Freenode birisi # node.js bu aramaları hatırlamaya çalışıyorum ve coun't oldukça oraya edildi: "totally spacing on the name, it's like "process._getOpenHandles()" or something equally hard to remember". Gerçek aramayı bulmaya çalışırken Google'da dolaşıyordum ve bulamadım. Tekrar teşekkürler.
Dmitry Minkovsky

2
İsimleri de hatırlayamadım - kullanılan düğüm repl, yazılan işlem._ + sekme tamamlama :)
Andrey Sidorov

Hah, REPL autocomplete'i düşünmemiştim, elbette bunu yapmanın en iyi yolu bu. İçeri baktım node_globals.jsve bulamadım. Şimdi nodül kod tabanını inceliyorum, neyi arayacağımı biliyorum ve node.cc içinde tanımlandıklarını buluyorum. process._getActiveHandles () src/node.cc:2345: NODE_SET_METHOD(process, "_getActiveHandles", GetActiveHandles);Hah! Mükemmel.
Dmitry Minkovsky

@dimadima şu anda soru ve cevap arasında bir eksi oy var. İlk olarak, "insanlar" değil, "bir kişi". Ve StackOverflow, dünyanın en çok ziyaret edilen 100 web sitesinden biridir, gerçekten o kadar sert almamalısınız ki, bir yerdeki biri bu soruyu pek sevmiyor.
djechlin

2
bu işlevlerle ilgili herhangi bir resmi belge var mı?
tbarbe

11

SIGINT (ctrl-c) gönderdiğinizde nodejs uygulamasının neyin çalışmaya devam ettiğini gösteren bir npm modülü wtfnode vardır .

process._getActiveHandles()@ Andrey-sidrov'un cevabında belirtildiği gibi dahili kullanımlar . Kullanmanın yararı, wtfnodeokunması kolay çıktı sağlamasıdır.


Process._getActiveHandles (). Uzunluğu, tüm işlemlerin toplamını veya yalnızca çağrıldığı işlem için
Shantanu Madane
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.