4

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

这些工作人员可能需要能够发布/订阅事件,在他们死亡时重生,并且队列应该能够负载平衡,维护缓存并保持活动状态。我见过 0MQ 和其他人喜欢它,但我不确定如何将它集成到 Web 应用程序中......

创建和管理这些工作进程的行业标准方法是什么?使用的工具是什么?

编辑:还有一件事:说音频处理需要很长时间,并且请求超时。除了增加超时之外,有没有办法解决这个问题?

编辑 2:所谓工人,我的意思是像 Heroku 工人测功机 - 他们是如何工作的?

4

1 回答 1

1

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

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

于 2012-01-20T06:32:48.730 回答