【问题标题】:activating resque workers on heroku在heroku上激活resque worker
【发布时间】:2012-09-10 23:46:09
【问题描述】:

我的 heroku 应用程序上的队列“send_cmets”显示 12 个项目,但显示“0 个工人工作中的 0 个”。我知道,如果我想在 localhost 上处理作业,我会使用以下行:

QUEUE=send_comments rake resque:work

我如何使用 heroku 做到这一点?

谢谢。

更新

我不确定这个错误是什么意思,但我在运行“工头启动”时得到它

$ foreman start --trace
21:15:38 worker.1  | started with pid 803
21:15:44 worker.1  | rake aborted!
21:15:44 worker.1  | can't convert Float into String
21:15:44 worker.1  | 
21:15:44 worker.1  | Tasks: TOP => resque:work => resque:preload => resque:setup
21:15:44 worker.1  | (See full trace by running task with --trace)

这是什么意思,这可能是工人不处理的原因吗?

这是我的 Procfile:

worker: env RESQUE_TERM_TIMEOUT=1 TERM_CHILD=1 VVERBOSE=1 QUEUE=* bundle exec rake resque:work

【问题讨论】:

  • 将 --trace 放在 Profile 内的 rake tast 上,而不是放在工头命令本身上。

标签: ruby-on-rails ruby-on-rails-3 heroku resque foreman


【解决方案1】:

Procfile 正是告诉 Heroku 当您启动给定类型的测功机(在本例中为工作程序)时该做什么。为了实际创建一个工作器,您必须手动扩展测功机,如下所示:

$ heroku ps:scale worker=1

这将启动一个测功机,然后在worker: 之后运行您在 Procfile 中指定的内容,这具有在新测功机上运行此 rake 任务的效果。这将创建一个工人,您可以根据需要指定任意数量。这种缩放也与停止/重新启动您的应用程序无关。

【讨论】:

    猜你喜欢
    • 2019-12-01
    • 1970-01-01
    • 2011-10-24
    • 1970-01-01
    • 2012-09-12
    • 2016-01-05
    • 2012-08-28
    • 1970-01-01
    • 2012-08-12
    相关资源
    最近更新 更多