我已正确安装 resque,但要处理我需要运行的所有队列
rake resque:work QUEUE='*'
问题是我需要保持终端窗口打开,否则 resque:work 将不起作用。
您知道每次运行“rails server”时自动运行该 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 命令,该命令会 fork 子线程来执行单独的工作。
关于ruby-on-rails - Rails 服务器启动时如何运行 "rake resque:work QUEUE=*"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13326843/