繁体   English   中英

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

[英]How to run “rake resque:work QUEUE=*” when Rails server boots?

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

rake resque:work QUEUE='*'

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

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

我在Localhost上

LIB /任务/ resque.rake

require 'resque/tasks'

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

您可以使用像工头一样可以调用所有其他任务的gem,而不是调用invoke函数。 如果您希望拥有一个基本上与平台无关的解决方案,并且在部署到云中时,这非常有用。 您的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 / initializers中添加一个初始化器,如下所示:

Rake::Task["resque:work QUEUE='*'"].invoke

没测试过!

最好的方法是

ENV['QUEUE'] = "*"
Rake::Task["resque:work"].invoke

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM