首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Heroku Procfile与多个工作人员

Heroku Procfile与多个工作人员
EN

Stack Overflow用户
提问于 2021-05-24 11:31:34
回答 1查看 649关注 0票数 0

我有一个应用程序,有1个网络dyno,7个后台队列,和1个时钟。我想使用HerokuStandard1x计划,因为它包含无限的后台工作人员(而且队列的数量将来可能会进一步增加)。当我部署我的应用程序时,procfile似乎没有提供我所期望的方式。显示了三个dynos,看起来我必须为每个工人/时钟购买一个额外的标准1xdyno。

Procfile:

代码语言:javascript
复制
web: flask db upgrade; gunicorn webapp:app
worker: rq worker -u $REDIS_URL high default low
worker: rq worker -u $REDIS_URL r1
worker: rq worker -u $REDIS_URL r2
worker: rq worker -u $REDIS_URL bg1
worker: rq worker -u $REDIS_URL bg2
worker: rq worker -u $REDIS_URL bg3
worker: rq worker -u $REDIS_URL bg4
clock: python clock.py

Heroku显示3个dynos:

  • 1x web (启用,缩放:1,标准1x)
  • 1x工作人员"bg4“(缩放:0)
  • 1x时钟(刻度:0)

如何构造Procfile以利用标准1xdyno中包含的后台工作人员?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-27 12:51:03

首先,我构造procfile的方式出现了错误。每个“工人”都应该有不同的名字。我认为“工人”一词对于Heroku的供应有一些特殊的含义,但它没有。所以Procfile应该是这样的:

代码语言:javascript
复制
web: flask db upgrade; gunicorn webapp:app
worker1: rq worker -u $REDIS_URL high default low
worker2: rq worker -u $REDIS_URL r1
worker3: rq worker -u $REDIS_URL r2
worker4: rq worker -u $REDIS_URL bg1
foo_worker5: rq worker -u $REDIS_URL bg2
more_worker6: rq worker -u $REDIS_URL bg3
another_worker7: rq worker -u $REDIS_URL bg4
clock: python clock.py

其次,我的实际问题(感谢Heroku支持团队)的答案是,每个额外的工作流程都需要一个单独的Dyno。我觉得它在Heroku定价页面上的措辞有点误导。

支助小组得以澄清:

在这种情况下,“无限后台工作人员”意味着您可以根据需要运行尽可能多的辅助进程。在底层(免费和业余爱好),可以使用的工作进程的数量是有限的。

然而,Heroku是建立在一个过程每dyno模型,这意味着每个工人需要运行在自己的dyno。因此,您将为您使用的每个工人进程收取1 dyno的费用。换句话说,它不是“25美元/mon的无限工作进程”,而是“运行每个25美元/mon的无限工作进程”。

基本上,免费层最多可以有2个dynos,霍比最多可以有10个,生产层可以有任意多个。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67671338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档