我正在研究如何使用delayed_job队列。我发现这个页面概述了各种启动worker的方式,但我想保持当前使用Capistrano的方法:
set :delayed_job_args, "-n 2 -p ecv2.production"
after "deploy:start", "delayed_job:start"
...
我想知道如何修改delayed_job_args参数以处理生成一个特定队列的工作进程,以及为每个其他任务生成1个工作进程。到目前为止,我只是像这样覆盖每个任务:
namespace :delayed_job do
task :restart, :roles => :app do
run "cd #{current_path}; RAILS_ENV=#{rails_env} script/delayed_job -p ecv2.production --queue=export restart"
run "cd #{current_path}; RAILS_ENV=#{rails_env} script/delayed_job -p ecv2.production restart"
end
end
...但这样很无聊。有什么建议吗?
run
命令使用了bundle exec
,那么nice -n 15
应该放在哪里(在bundle exec
和ruby script/delayed_job
之间还是之后)? - James Chevalier