Rufus scheduler non login produzione
-
18-09-2019 - |
Domanda
Il mio rotaie app prende il via un processo con Rufus-scheduler in un inizializzatore. Ecco una versione ridotta del codice del inizializzatore:
# 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}]")
In tutti gli ambienti, il codice viene eseguito come un campione. Il processo popolano fa la sua cosa e finisce con grazia. Il problema, tuttavia, è con la registrazione. Quando RAILS_ENV è impostato su "produzione", i messaggi all'interno del blocco cron non log affatto.
Sto usando passeggeri 2.2.9 e Rails 2.3.5. Immagino una di queste due cose impedisce il processo di registrazione. Qualcuno può dirmi che cosa è e come ottenerlo per accedere in produzione?
Soluzione
OK, trovato il problema, grazie a questo articolo: http: // earthcode. com / blog / 2009/05 / rails_script_runner_logging_cron.html
Si scopre che il registratore non sarà auto-filo in produzione. Così, ho solo aggiunto
logger.flush
alla fine del processo e BANG tutto ha funzionato.