2012-11-20 3 views
0

J'utilise delayed_job sur mon projet, et jusqu'à maintenant, j'appelais rake jobs: ça marche dans la console ça marche. Mais maintenant j'essaye d'arrêter le traitement des travaux après un événement concret, et continue le traitement après l'autre événement.Rails delayed_job démarrer et arrêter

Pour simuler ce comportement que j'ai créé un script config/initializers/delayed_jobs.rb

puts "START DELAYED JOB PRE" 
`script/delayed_job start` 
puts "START DELAYED JOB POST" 

Et seuls les premiers met est appelé, le serveur a embourbé dans l'instruction, et le web est de ne pas montré. Comment appeler arrêter et démarrer delayed_jobs obtenir le bon comportement?

Répondre

0

Vous pouvez le déplacer dans un propre fil:

puts "START DELAYED JOB PRE" 
Thread.new do 
    `script/delayed_job start` 
end 
puts "START DELAYED JOB POST" 
0

Je suggère d'utiliser le démon externe qui serait chargé de garder vos travailleurs en place. J'ai eu une bonne expérience avec resque-pool qui est conçu pour la file d'attente resque. Habituellement, ce démon vous permet de mettre les employés en pause simplement en envoyant un signal à un processus maître. Il facilite également le redémarrage et la gestion du déploiement.

Questions connexes