节点中的后台进程.js
2022-08-30 04:56:38
在NodeJS应用程序中处理后台进程的好方法是什么?
场景:用户向应用发布内容后,我想处理数据、从外部资源请求其他数据等。所有这些都非常耗时,因此我希望它脱离req/res循环。理想的情况是,只需有一个作业队列,您可以在其中快速转储作业,守护程序或任务运行程序将始终采用最旧的作业并对其进行处理。
在RoR中,我会用类似Delay Job的东西来完成它。此 API 的节点等效项是什么?
在NodeJS应用程序中处理后台进程的好方法是什么?
场景:用户向应用发布内容后,我想处理数据、从外部资源请求其他数据等。所有这些都非常耗时,因此我希望它脱离req/res循环。理想的情况是,只需有一个作业队列,您可以在其中快速转储作业,守护程序或任务运行程序将始终采用最旧的作业并对其进行处理。
在RoR中,我会用类似Delay Job的东西来完成它。此 API 的节点等效项是什么?
如果你想要一些轻量级的东西,在与服务器相同的进程中运行,我强烈推荐Bull。它有一个简单的API,允许对队列进行细粒度控制。
如果你正在寻找一些作为独立工作进程运行的东西,也许可以看看Kue。它可以作为RESTful API服务器运行,甚至可以为其编写多个前端应用程序。
如果你熟悉 Ruby 的 Resque,有一个叫做 Node-resque 的节点实现。
Bull,Kue和Node-resque都得到了Redis的支持,Redis在Node.js工作者队列中无处不在。所有3个都可以完成RoR的DelayEdJob所做的,这是你想要的特定功能以及你的API偏好的问题。