2010-02-05 7 views
2

L'application My rails lance un processus avec rufus-scheduler dans un initialiseur. Voici une version allégée du code du initialiseur:Rufus scheduler ne se connecte pas en production

# 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}]") 

Dans tous les environnements, le code fonctionne comme un champion. Le processus de peuplement fait sa chose et se termine gracieusement. Le problème, cependant, est avec la journalisation. Lorsque RAILS_ENV est défini sur "production", les messages à l'intérieur du bloc cron ne se connectent pas du tout. J'utilise Passenger 2.2.9 et Rails 2.3.5. Je pense que l'une de ces deux choses empêche le processus de se connecter. Quelqu'un peut-il me dire ce que c'est et comment l'obtenir pour se connecter à la production?

Répondre