resque-scheduler y crons superpuestos
-
24-10-2019 - |
Pregunta
Solo estoy poniendo en funcionamiento de resque y funciona bien con una tarea de horario. Sin embargo, cuando agregué un segundo en el mismo horario de Cron, parece que está pisoteando sobre sí mismo. Así es como se ve mi resque_schedule.yml:
email_subscription_notification:
cron: * * * * *
class: SubscriptionProcessor
args: test
description: Email Notifications
email_polling:
cron: * * * * *
class: EmailPollingProcessor
args: test
description: Email Polling
Cuando ejecute a través de Rake Resque: Scheduler, recibiré errores periódicos:
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 cambio el horario para tener uno u otro, juegan bien. Si cambio los horarios de Cron para no superponerse, funcionan bien. Gracias por cualquier ayuda. OSX 10.6.6, Ruby 1.9.2p136.
Tenga en cuenta que el método de desempeño de ambas clases solo tiene para la depuración en este momento.
Solución
Ok, probablemente mala forma respondiendo a mi propia pregunta, disculpas ... encontré esto Tan hilo y la pista era agregar: thread_safe = true cuando lo carga_resque:
Resque.redis = Redis.new(:host => config['host'], :port => config['port'], :thread_safe => true)
Nota: Esto fue con Redis 2.1.1 y pensé que había leído Thread_Safe era el valor predeterminado ahora. Pero no estoy encontrando ese artículo ...