Question

Je suis juste resque-programme et en cours d'exécution et il fonctionne très bien avec une tâche de planification. Cependant, quand j'ai ajouté une seconde sur le même calendrier cron il semble qu'il est frappant du pied sur lui-même. Voici ce que mes regards resque_schedule.yml comme:

email_subscription_notification:
  cron: * * * * *
  class: SubscriptionProcessor
  args: test
  description: Email Notifications
email_polling:
  cron: * * * * *
  class: EmailPollingProcessor
  args: test
  description: Email Polling

Quand je lance via rake resque: ordonnanceur obtiendrai erreurs périodiques:

2011-03-15 17:43:00 Failed to enqueue EmailPollingProcessor:
  Got '0' as initial reply byte. If you're running in a multi-threaded environment, make sure you pass the :thread_safe option when initializing the connection. If you're in a forking environment, such as Unicorn, you need to connect to Redis after forking. 

Si je change le calendrier d'avoir juste un ou l'autre, ils jouent bien. Si je change les horaires Cron pour ne pas se chevauchent, ils fonctionnent très bien. Merci pour toute aide. OSx 10.6.6, Ruby 1.9.2p136.

Notez les deux classes Perform méthode suffit pour le débogage met en ce moment.

Était-ce utile?

La solution

Ok, forme probablement mal répondre à ma propre question, des excuses ... J'ai trouvé ce fil SO et l'indice était d'ajouter: thread_safe = true quand je load_resque:

Resque.redis = Redis.new(:host => config['host'], :port => config['port'], :thread_safe => true)

Note: Ce fut avec Redis 2.1.1 et je pensais que j'avais lu thread_safe était la valeur par défaut maintenant. Mais, je ne trouve pas cet article ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top