我已经将 Node/Express 路由上的一个长时间运行的进程更改为使用 Bull/Redis。
该教程的要点是:Express 路由安排作业,立即向客户端返回 200,并且浏览器长轮询作业状态(Express 上的 ping 路由)。当客户端获得completed
状态时,它会在 UI 中显示它。这Worker
是一个单独的文件,并使用附加的yarn run worker.js
.
请注意它建议Throng
用于集群工作人员的末尾。
我正在使用此 Bull Dashboard来监控作业/队列。此仪表板显示可用的工作人员及其状态(未运行时空闲/运行时未处于空闲状态)。
我已经让 MVP 工作了,但是操作非常慢。完成的平均时间是 1 分 30 秒。而之前(在添加 Bull 之前)只需几秒钟即可完成。
另一个奇怪的是,工人状态似乎至少需要 30 秒才能从Idle
变为not Idle
。似乎很多延迟都在等待工人。
由于新操作是一个单独的文件 (worker.js) 并且throng
启用了集群,我期待这个操作非常快,但事实恰恰相反。
有没有人有这方面的经验?或帮助找出导致速度如此缓慢的原因的指针?