Rufus planificador no ingresar en la producción
-
18-09-2019 - |
Pregunta
Mi carriles de aplicación se inicia un proceso con rufus-programador en un inicializador. Aquí hay una versión reducida del código del inicializador:
# config.logger isn't available here, so we have to grab it from the Rails object
logger = RAILS_DEFAULT_LOGGER
logger.warn(Time.now.to_s + ": Starting Rufus Scheduler")
# run every Wednesday at 10 AM
cron_string = '0 10 * * 3'
scheduler = Rufus::Scheduler.start_new
scheduler.cron cron_string do
logger.warn(Time.now.to_s + ": Starting Background Process")
(do work here)
logger.warn(Time.now.to_s + ": Finished Background Process")
end
logger.warn(Time.now.to_s + ": Rufus Scheduler set Background Process to run with the following cron string: [#{cron_string}]")
En todos los entornos, el código se ejecuta como un campeón. El proceso de poblar hace su cosa y termina con gracia. El problema, sin embargo, es con el registro. Cuando RAILS_ENV se establece en "producción", los mensajes dentro del bloque cron no inician sesión en absoluto.
Estoy usando pasajeros 2.2.9 y 2.3.5 rieles. Calculo una de estas dos cosas es evitar que el proceso de registro. ¿Puede alguien decirme lo que es y cómo conseguir que se ingrese en la producción?
Solución
OK, encontrado el problema, gracias a este artículo: http: // earthcode. com / blog / 2009/05 / rails_script_runner_logging_cron.html
Resulta que el registrador no auto-ras en la producción. Por lo tanto, me acaba de agregar
logger.flush
al final del proceso y BANG todo funcionaba.