如何在NodeJS中创建和管理工作进程?

4
例如,假设用户请求处理某个音频文件,那么显然nodejs无法进行强烈的处理,因此应该将其卸载到工作进程中。
这些工作进程可能需要能够发布/订阅事件,在死亡时重新生成,并且队列应该能够负载平衡,维护缓存并保持活动状态。我看过0MQ和其他类似的工具,但我不确定如何将其集成到Web应用程序中...
创建和管理这些工作进程的行业标准方式是什么?使用的工具有哪些?
编辑:还有一件事:假设音频处理需要很长时间,并且请求超时了。 除了增加超时时间之外,有没有其他方法可以解决这个问题?
编辑2:通过工作人员,我的意思是像Heroku工作者dynos - 它们是如何工作的?
1个回答

1

个人而言,我可能会将任务添加到 Redis 数据库中。然后,另一个进程(如果它非常处理重)订阅了 Redis 数据库中的该键,并开始执行添加到其中的任务。它甚至可以自己管理一些工作线程。

对于超时,您可以使用一个请求仅启动任务,另一个请求获取结果(如果结果尚不可用,则使用长轮询,或者更好的是通过 WebSockets 进行服务器推送)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接