Heroku resque没有工人

时间:2013-04-10 17:12:04

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

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

但这项工作从未执行过,只是等待处理。我的heroku应用程序上有1名工作人员。在resque stats中,工人为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 :(得分:1)

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

通过使用相同的Profile启动Resque worker with Foreman,本地测试Heroku Resque设置的额外好处。

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

答案 1 :(得分:0)

正如@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