0

キューを使用してワーカーの受信メッセージを処理するパフォーマンスを改善しようとしています。

ただし、スリープ機能の完了には、1 ミリ秒ではなく 16 ~ 30 ミリ秒かかります。この大きな遅延なく、またアプリを 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));
}

どんな助けでも大歓迎です。ありがとう!

4

1 に答える 1