Resque-scheduler e cron sovrapposte
-
24-10-2019 - |
Domanda
Mi sto solo resque-programma installato e funzionante e funziona benissimo con un compito di pianificazione. Tuttavia, quando ho aggiunto un secondo sullo stesso programma cron sembra è stomping su se stessa. Ecco cosa il mio aspetto resque_schedule.yml come:
email_subscription_notification:
cron: * * * * *
class: SubscriptionProcessor
args: test
description: Email Notifications
email_polling:
cron: * * * * *
class: EmailPollingProcessor
args: test
description: Email Polling
Quando eseguo via rake resque: scheduler mi metterò errori periodici:
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.
Se io modificare la pianificazione di avere solo uno o l'altro, giocano bene. Se cambio gli orari cron di non sovrapposizione, corrono bene. Grazie per tutto l'aiuto. OSx 10.6.6, Ruby 1.9.2p136.
Si noti entrambe le classi metodo di eseguire semplicemente mette per il debug al momento.
Soluzione
Ok, probabilmente di cattivo gusto di rispondere alla mia domanda, le scuse ... Ho trovato questo discussione SO e l'indizio è stato quello di aggiungere: thread_safe = true quando ho load_resque:
Resque.redis = Redis.new(:host => config['host'], :port => config['port'], :thread_safe => true)
Nota: Questo è stato con Redis 2.1.1 e ho pensato che avevo thread_safe lettura era il default ora. Ma, io non sto trovando che l'articolo ...