2011-03-16 2 views
2

Je ne fais qu'exécuter le calendrier de resque et fonctionne correctement avec une tâche de planification. Cependant, quand j'ai ajouté une seconde sur le même calendrier cron, il semble qu'il piétine sur lui-même. Voici ce que mon resque_schedule.yml ressemble:resque-scheduler et crons chevauchants

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 chevaucher, ils fonctionnent bien. Merci pour toute aide. OSx 10.6.6, Ruby 1.9.2p136.

Remarquez que la méthode d'exécution des deux classes a juste des options pour le débogage en ce moment.

Répondre

5

forme Ok, probablement mal répondre à ma propre question, des excuses ... J'ai trouvé ce SO thread 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 avoir lu thread_safe était la valeur par défaut maintenant. Mais, je ne trouve pas cet article ...

+3

Si vous trouvez la réponse, répondre à votre propre question est bonne. De cette façon, quiconque cherche une solution au même problème trouve une réponse plutôt qu'une question sans réponse. – Anomie

Questions connexes