, basit bir monitör iplik yapardınız? Olay kuyruğu içi hakkında bilgi almanın bir yolunu bilmiyorum, ancak iş parçacığının zamanında çalıştırıldığını izlemek için olay kuyruğuna bir izleyici enjekte edebilirsiniz. (Bu konu zamanında çalıştırıldığı olup olmama durumuna göre henüz çalışmaz parçacığı sayısına göre yük ölçer, ancak. Aynı şey, bir bakıma.)
bir monitör iplik olabilir yeniden kuyruk kendisini ve onu çağrılan kontrol En az her 10 milisaniye (veya maksimum kümülatif engelleme ms'ye izin verilir) izin verilir. Nodej iş parçacığı yuvarlak robin çalıştırdığı için, monitör iş parçacığı zamanında çalıştırılmışsa, diğer tüm iş parçacıklarının aynı 10 ms'lik pencerede çalışma şansı olduğunu söyler. (Düğümünde) gibi bir şey:
// like Date.now(), but with higher precision
// the extra precision is needed to be able to track small delays
function dateNow() {
var t = process.hrtime();
return (t[0] + t[1] * 1e-9) * 1000;
}
var _lastTimestamp = dateNow(); // when healthMonitor ran last, in ms
var _maxAllowedDelay = 10.0; // max ms delay we allow for our task to run
function healthMonitor() {
var now = dateNow();
var delay = now - _lastTimestamp;
if (delaly > _maxAllowedDelay) {
console.log("healthMonitor was late:", delay, " > ", _maxAllowedDelay);
}
_lastTimestamp = now;
setTimeout(healthMonitor, 1);
}
// launch the health monitor and run it forever
// note: the node process will never exit, it will have to be killed
healthMonitor();
uyarı mesajları kısma ve temiz bir kapatma destekleyen bir egzersiz okuyucuya sol olduğunu.
libuv'u node.js uygulamasının bir parçası veya bağımsız olarak mı kullanıyorsunuz? –