我有一个工人在后台运行,并通过Redis监听消息。当有关任务开始的消息到达时,工作人员开始对其进行处理,并在任务完成后将消息发送回Redis。
现在,我想优化资源,以便在已经处理一个任务但有一个新任务出现时,可以运行一个额外的工作程序(每个处理器内核一个工作程序)。
如果我这样运行:
pm2 start -i max myWorker.js
我看到启动了4个工作程序实例,但是当我发送任务时,它们全部都被加载,并且它们的进程消耗上升到100%,因此我怀疑它们中的每个工作于同一个任务,因此一项任务一次运行4次,这是没有道理的。
如何平衡工作人员之间的任务以使1个任务仅分配给一个工作人员?