Heroku工人dyno中有多个工人

时间:2019-04-04 16:07:58

标签: javascript node.js express heroku

我正在对数据进行远程api调用,有时可能需要30秒以上的时间。 Heroku上超时问题的答案是将任务排入队列,让工作人员处理该作业,而客户端则定期ping以查看该作业是否完成。如果不是,则发送响应,说明数据尚未准备好;如果已将数据提供给客户端以进行显示。

我现在遇到的问题是,如果我只有一名工人,那么仅花费3秒的工作就可能滞后于花费2分钟的工作。将会建立工作,并且该应用将无法使用。我为1台标准x1网络测功机和1台标准x1工人测功机付费。每个工人dyno只能有一个工人吗?太疯狂了如果是这样,我将不得不支付至少更多的测功机才能使该应用程序正常运行。一个工人测力计中可以有几个工人吗?如果是这样,我该怎么做?

我可以像这样声明我的Procfile来增加一名以上的工人:

web: node src/app.js
worker: node src/workers/worker.js & node src/workers/worker2.js & node src/workers/worker3.js

这似乎是解决问题的一种方法,现在随着那些问题的解决,如果我同时获得多个大型数据集,我的dyno将遇到其他问题,例如内存不足。

期望:我应该能够在Heroku的一个工人dyno中旋转几个工人。

实际:我可以(请参见上面的Procfile中的操作),但是我认为我做的不正确,这会导致应用程序出现问题。

0 个答案:

没有答案