如何在Rails服务器启动时运行"rake resque:work QUEUE =*"?

spa*_*kle 7 rake ruby-on-rails resque ruby-on-rails-3

我已经正确安装了resque,但是要处理我需要运行的所有队列

rake resque:work QUEUE='*'
Run Code Online (Sandbox Code Playgroud)

问题是我需要保持终端窗口打开,否则resque:工作将无法正常工作.

你知道每次运行"rails server"时自动运行rake命令的方法吗?

我在Localhost上

LIB /任务/ resque.rake

require 'resque/tasks'

task "resque:setup" => :environment do
    ENV['QUEUE'] = "*"
end
Run Code Online (Sandbox Code Playgroud)

Sum*_*sht 9

您可以使用像工头一样可以调用所有其他任务的gem,而不是调用invoke函数.如果您希望拥有一个基本上与平台无关的解决方案,并且在部署到云中时,这非常有用.您的Procfile可以包含以下内容:

web:    bundle exec thin start -p $PORT
worker: bundle exec rake resque:work QUEUE=*
clock:  bundle exec rake resque:scheduler
Run Code Online (Sandbox Code Playgroud)

资料来源:工头介绍.

现在要启动服务器,您只需发出foreman start命令,该命令将子线程分叉以执行单个工作.