Inicialize a gema Trabalhos atrasados iniciando os trabalhadores no aplicativo start
Estou usando Ruby on Rails 3.0.9 e estou tentando configurar o delay_job gema. Tudo funciona se, depois de reiniciar o servidor Apache2, eu executar no Terminal \ Console seguintes comandos:
RAILS_ENV=development script/delayed_job stop
RAILS_ENV=development script/delayed_job -n 2 start
No entanto, como eu sempre quero iniciar os trabalhadores no início do aplicativo, no meuconfig/initializers/delayed_job.rb
u adiciono o seguinte código (que lida com o modo de desenvolvimento e produção
if Rails.env.development?
system 'RAILS_ENV=development script/delayed_job stop'
system 'RAILS_ENV=development script/delayed_job -n 2 start'
elsif Rails.env.production?
system 'RAILS_ENV=production script/delayed_job stop'
system 'RAILS_ENV=production script/delayed_job -n 2 start'
end
No entanto, usando o código acima e após reiniciar o servidor Apache2, a jóia do DJ não funciona mais como o esperado. Ou seja, ele não processa os trabalhos como ocorre quando executo as linhas de comando acima no Terminal \ Consol
Como posso fazer o DJ funcionar corretamente? Qual é o problema
P.S .: Gostaria de fazer isso para automatizar processo
Parece que o código acima noconfig/initializers/delayed_job.rb
arquivo @ não "cria" os arquivos "pids" relacionados ao DJ noRAILS_ROOT/tmp/pids
diretório. Esses são criados apenas executando as linhas de comando acima manualmente. Por que isso acontece?
ATUALIZA para@ Devin M
Minhasconfig/initializers/delayed_job.rb
contém:
# Options
Delayed::Worker.destroy_failed_jobs = false
Delayed::Worker.sleep_delay = 2
Delayed::Worker.max_attempts = 5
Delayed::Worker.max_run_time = 1.hour
Delayed::Worker.delay_jobs = !Rails.env.test?
if Rails.env.development?
system "RAILS_ENV=development #{Rails.root.join('script','delayed_job')} stop"
system "RAILS_ENV=development #{Rails.root.join('script','delayed_job')} -n 2 start"
elsif Rails.env.production?
system "RAILS_ENV=production #{Rails.root.join('script','delayed_job')} stop"
system "RAILS_ENV=production #{Rails.root.join('script','delayed_job')} -n 2 start"
end