我已经正确安装了Resque,但是要处理所有队列,我需要运行
rake resque:work QUEUE='*'
问题是我需要保持终端窗口打开,否则我需要重新设置:工作将行不通。
您知道每次运行" Rails Server"时,您知道一种自动运行的方法吗?
我在 localhost
lib/tasks/resque.rake
require 'resque/tasks'
task "resque:setup" => :environment do
ENV['QUEUE'] = "*"
end
而不是调用indoke函数,您可以使用像工头一样的宝石,可以调用所有其他任务。如果您希望在很大程度上具有中性解决方案以及部署到云中,这将很有用。您的procfile可以具有以下内容:
web: bundle exec thin start -p $PORT
worker: bundle exec rake resque:work QUEUE=*
clock: bundle exec rake resque:scheduler
来源:工头简介
现在要启动服务器,您只需要发出foreman start命令,该命令将子线程叉出来以执行个人工作。
编辑:2012年的答案!似乎这仅适用于Rails 2!
在Config/Initializer中添加一个初始化器,具有类似的内容:
Rake::Task["resque:work QUEUE='*'"].invoke
未测试!
最好的方法是
ENV['QUEUE'] = "*"
Rake::Task["resque:work"].invoke