首页 文章

Heroku resque没有 Worker

提问于
浏览
3

我已经成功排队了一份工作,我可以在resque网站上看到 .

但这项工作从未执行过,只是等待处理 . 我的heroku应用程序上有1名工作人员 . 在resque stats中, Worker 为0 .

在lib / tasks / resque.rb中:

require 'resque/tasks'

task "resque:setup" => :environment do
  ENV['QUEUE'] = '*'

  Resque.after_fork do |job|
    ActiveRecord::Base.establish_connection
  end

end

desc "Alias for resque:work (To run workers on Heroku)"
task "jobs:work" => "resque:work"

2 回答

  • 0

    你必须告诉Heroku通过 Procfile 启动你的Resque工作人员 . 这是您放置本地运行命令的地方,如 RAILS_ENV=Production QUEUE=* bundle exec rake jobs:work

    通过使用相同的 Profile 来启动Resman与Foreman的工作人员,这提供了在本地测试Heroku Resque设置的额外好处 .

    Here是Heroku网站上的一个链接,解释了如何进行设置 .

  • 1

    正如@messick所说,你需要使用Procfile执行resque worker注册,以防万一你真的不关心设置环境,只需在你的Procfile中添加这些行:

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

    如果需要调度程序,只需添加此行

    scheduler:  bundle exec rake resque:scheduler
    

相关问题