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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top