Rufus Scheduler não login na produção
-
18-09-2019 - |
Pergunta
Meu aplicativo Rails inicia um processo com Rufus-Scheduler em um inicializador. Aqui está uma versão despojada do código do 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}]")
Em todos os ambientes, o código funciona como um campeão. O processo de preenchimento faz o que é e termina graciosamente. O problema, no entanto, é com o log. Quando o Rails_env está definido como "Produção", as mensagens dentro do bloco Cron não registram nada.
Estou usando o passageiro 2.2.9 e o Rails 2.3.5. Eu acho que uma dessas duas coisas está impedindo que o processo registre. Alguém pode me dizer qual é e como fazê -lo fazer login na produção?
Solução
Ok, encontrei o problema, graças a este artigo: http://earthcode.com/blog/2009/05/rails_script_runner_logging_cron.html
Acontece que o madeireiro não fagará automaticamente na produção. Então, acabei de adicionar
logger.flush
até o final do processo e derrotar tudo funcionou.