var Queue = require('bull');
// Init queue
var workQueue = new Queue("workQueue", "redis://pass@ip:6379");
// Add 10 jobs to the queue
for (i=0; i<10; i++) {
workQueue.add({msg:i});
}
// Get # of jobs in queue
workQueue.count(); // <-- does not return queue job count
根据documentation,.count()
“返回承诺,返回队列中的作业数”
如果我正确理解这一点,则promise是一个等待执行的异步过程。那么我该如何执行这个承诺并获得结果呢?
答案 0 :(得分:1)
如果我正确地猜到了您的要求,那么您正在做queue.count()
,以确定是否有待处理的作业。
您应该执行setInterval()定期检查,然后在没有任何未决事件时采取措施:
let check = setInterval(()=>{
workQueue.count().then(_count => {
if (_count === 0){
clearInterval(check);
/* do what you need to do here */
}
});
}, 5000);