如何在NodeJS中创build和pipe理工作进程?

例如,假设用户请求处理一些audio文件,那么nodejs当然不能进行紧张的处理,所以它应该将其卸载到工作进程中。

这些工作人员可能需要能够发布/订阅事件,在死亡时重新生成,队列应该能够负载均衡,维护caching并保持活跃状态​​。 我已经看到了0MQ,其他人喜欢它,但我不知道如何将它集成到一个Web应用程序…

什么是创build和pipe理这些工作stream程的行业标准方法? 什么是使用的工具?

编辑:还有一件事:说audio处理需要很长时间,请求超时。 除了增加超时外,还有什么办法可以解决吗?

编辑2:由工人,我的意思是像Heroku工人dynos – 他们如何工作?

就我个人而言,我可能会做一些事情,如将任务添加到Redis数据库。 然后,另一个进程(可能用不同的语言编写,如果处理量很大的话)在redis数据库中订阅该密钥并启动添加到其中的任务。 它甚至可以pipe理一些工作线程本身。

对于超时,你可以使用一个请求来启动任务,另外一个请求来获得结果(如果结果还不可用,或者甚至通过websockets更好的服务器推送,那么这个请求会很长)。