我正在尝试提高使用队列处理我的工作人员传入消息的性能。
但是,睡眠功能需要 16 到 30 毫秒才能完成,而不是 1 毫秒。有没有更好的方法来处理队列而不会有这么大的延迟,并且不会让我的应用程序保持 100% cpu?
我正在做这样的事情:
var actions = new Queue();
parentPort.on('message', (msg) => actions.enqueue(msg));
loopy();
async function loopy() {
while (true) {
if (actions.size() > 0) {
let action = actions.dequeue();
//do work
continue;
}
await sleep(1);
}
}
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
任何帮助,将不胜感激。谢谢!