2010-02-12 7 views
2

J'utilise delayed_job sans problèmes depuis un moment maintenant; principalement pour la mise en file d'attente des appels ActionMailer (Notifier.send_later ...). Dernièrement, il envoie des multiples aléatoires de courriels provenant du même travail. Je vais mettre en file d'attente un e-mail et je le recevrai cinq fois, ou une fois, ou deux fois, tous en même temps. J'ai redémarré delayed_job et il semble se comporter un peu. Quelqu'un a-t-il vécu cela?Travail retardé exécutant le même travail plusieurs fois?

Ceci est mon journal; Je ne l'ai jamais vu ces erreurs avant ...

# Logfile created on 2010-02-11 by logger.rb 
*** below you find the most recent exception thrown, this will be likely (but not certainly) the exception that made the application exit abnormally *** 
#<NameError: uninitialized constant Delayed::Worker> 
*** below you find all exception objects found in memory, some of them may have been thrown in your application, others may just be in memory because they are standard exceptions *** 
#<NoMemoryError: failed to allocate memory> 
#<SystemStackError: stack level too deep> 
#<fatal: exception reentered> 
#<LoadError: no such file to load -- tmail> 
#<SystemExit: exit> 
#<NameError: uninitialized constant Delayed::Worker::Merb> 
#<NameError: uninitialized constant Merb> 
#<NameError: uninitialized constant Delayed::Merb> 
#<NameError: uninitialized constant Merb> 
#<NameError: uninitialized constant Delayed::Merb> 
#<NameError: uninitialized constant Delayed::Worker::Merb> 
#<NameError: "Gems::DelayedJob-1.8.4::Lib::Delayed::Worker" is not a valid constant name!> 
#<NameError: uninitialized constant Delayed::Worker> 

Répondre

2

Lorsque vous déployez une nouvelle version de votre application, assurez-vous de tuer tous les travailleurs DJ et démarrage seulement 1 (ou que vous voulez mais beaucoup - commencer par 1 déboguer ce problème).

ps -ef | grep delayed_job 
+1

Le problème est-il que plusieurs processus de travail DJ ont le même nom de travailleur? Dans quelles conditions plus d'un travailleur peut-il saisir la même tâche? –

0

je le même problème, quand j'ai vérifié ma file d'attente, je trouve que je faisais une erreur dans le travail et le DJ était en train de courir encore et encore ce travail.

Questions connexes