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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top