我已经正确安装了resque,但是要处理所有需要运行的队列
rake resque:work QUEUE='*'
问题是我需要保持终端窗口打开,否则resque:work无法正常工作。
每次我运行“rails服务器”时,您知道一种自动运行该rake命令的方法吗?
我在上本地主机
lib/tasks/resque.rake
require 'resque/tasks'
task "resque:setup" => :environment do
ENV['QUEUE'] = "*"
end
最佳答案
您可以使用像foreman这样的gem来调用所有其他任务,而不是调用invoke函数。
如果您希望拥有一个在很大程度上与平台无关的解决方案,并且在部署到云中时,这将很有用。
您的Procfile可以具有以下内容:
web: bundle exec thin start -p $PORT
worker: bundle exec rake resque:work QUEUE=*
clock: bundle exec rake resque:scheduler
资料来源:introduction to foreman。
现在启动服务器,您只需要发出foreman start命令,该命令会派生子线程来执行单独的工作。
关于ruby-on-rails - Rails服务器启动时如何运行 "rake resque:work QUEUE=*"?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13326843/