我尝试使用本教程在 Heroku Server 上生成两个 worker。
但是基于这个例子,我只有一个工人同时运行。是否可以在应用程序启动时生成 2 个运行 2 个不同作业的工作人员?
我已经尝试通过使用来扩展工人:heroku ps:scale worker=2
. 但是当我这样做时,它只会影响 WorkerProcess 类,并且我有两个 WorkerProcess 类同时运行。
是的,您可以拥有任意数量的工作进程。它们只需要在您的 Procfile 中有不同的名称。在您引用的文章中,单个工作人员只是被称为worker
,但是您的 Procfile 可能看起来像这样,有两个不同的工作人员被称为updater
and mailer
:
web: java -jar web-app.jar $PORT
updater: sh worker/target/bin/updater
mailer: sh worker/target/bin/mailer
如果您使用本文中appassembler-maven-plugin
显示的内容,您还需要<program>...</program>
为每个工作人员添加另一个元素,以便生成必要的启动脚本。