Node.js:当一个人应该发出一个' drain'事件?

时间:2014-10-28 16:26:28

标签: node.js events asynchronous queue worker

我是这个node.js lib:async-kit

的作者

我正在编写工作人员/队列功能。

默认情况下,worker一次处理一个作业,但并发级别可以调整为任何值。

假设我创建了一个并发级别为3的worker,因此任何时候最多可以挂起3个异步作业。在撰写本文时,当没有更多作业待处理时,即当所有作业都触发了回调时,我的lib将发出'drain'事件。我们称之为“没有更多待处理的工作”事件。

但是,人们可能希望在待处理作业数量降至3以下的任何时候发出事件,这意味着如果将新作业添加到队列中,它将立即运行。让我们暂时将其称为“准备加工 - 新工作 - 现在”活动。事实上,这个事件比“没有更多待处理的工作”事件更有用。

那么......'drain'事件的node.js中的标准是什么?它更像是“没有更多待定工作”,还是更像是“准备加工新工作 - 现在”?

我倾向于第一个,第二个似乎更有用,我找不到实现这两种事件的lib,所以我找不到'ready-的标准化名称到进程新在职右现在”。

同样重要的是要注意,对于“一次一个工作”的默认行为,这两个事件无论如何都会同时发生。

有什么建议吗?

0 个答案:

没有答案