Я использую rufus-scheduler для обработки заданий cron для приложения Rails 3.2.x. Корень worker.rb
запускается бригадиром (фактически выскочка на этом конкретном сервере), и поэтому, когда он запускается, у него нет контекста Rails, в котором можно работать. Очевидно, что когда я пытаюсь вызвать logger
или Rails.logger
, это каждый раз терпит неудачу.
Я использую log4r
в качестве замены для Rails Logger по умолчанию, что весьма неплохо, но мне интересно, каким будет правильное решение этой проблемы:
1) Нужно ли мне давать скрипту контекст Rails при запуске (сейчас он просто выполняет rake
задач, поэтому в итоге он получает среду Rails, когда рабочий скрипт переходит к задаче rake, и я боюсь дать скрипту среду Rails перед запуском временной задачи было бы излишним, так как для запуска env требуется так много времени)? или
2) Должен ли я просто настроить log4r
, как это можно было бы сделать в сценарии Ruby, отличном от Rails, который просто читает ту же конфигурацию log4r.yml, которую использует приложение Rails, и, следовательно, участвует в той же структуре журнала?
3) Или какой-то другой вариант, о котором я не думаю?
Кроме того, я был бы признателен либо за пример, либо за шаги, которые я должен рассмотреть с рекомендуемой реализацией.
Для справки я следил за "Как настроить Log4r с Rails 3.0. x?", и я думаю, что это может быть полезно при интеграции с приведенным выше: "Правильно используете Log4r в приложении Ruby?"