我已经成功排队了一份工作,我可以在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 回答
你必须告诉Heroku通过
Procfile
启动你的Resque工作人员 . 这是您放置本地运行命令的地方,如RAILS_ENV=Production QUEUE=* bundle exec rake jobs:work
通过使用相同的
Profile
来启动Resman与Foreman的工作人员,这提供了在本地测试Heroku Resque设置的额外好处 .Here是Heroku网站上的一个链接,解释了如何进行设置 .
正如@messick所说,你需要使用Procfile执行resque worker注册,以防万一你真的不关心设置环境,只需在你的Procfile中添加这些行:
如果需要调度程序,只需添加此行