Отладка планировщика Rufus
Я делаю это в моей консоли Rails:
job = scheduler.at 1.minute.from_now do Service.log.debug 'scheduler works' end
job.schedule_info
=> Wed, 07 Aug 2013 16:14:46 UTC 00:00
scheduler
определяется в другом файле:
require 'rubygems'
require 'rufus/scheduler'
def scheduler
@scheduler ||= Rufus::Scheduler.start_new
end
И когда я бегу в консоли:
Service.log.debug 'scheduler works'
Файл журнала сервиса написан.
проблема
scheduler.at 1.minute.from_now do Service.log.debug 'scheduler works' end
Не пишет в журнал через минуту. Что мне не хватает? Как я мог отладить это?
Актуальная проблема
У меня есть сервер в EC2, который, кажется, выключен, и запланированные задачи не выполняются.
Дело в том, что в моей среде разработки я тестирую задачу, которая выполняется за одну минуту, и она работает. Это на сервере, а не в консоли. В консоли, как я уже говорил, происходит сбой.
Среда разработки
ruby 1.9.3p327 (2012-11-10, редакция 37606) [x86_64-darwin12.0.0]
Тонкий 1.5.0
Удаленная среда
ruby 1.9.3p429 (редакция 2013-05-15 40747) [x86_64-linux]
apache2 2.2.22
пассажир 4.0.5
Драгоценные камни
рельсы 3.2.8
Руфус-планировщик 2.0.18
2 ответа
Мне пришлось использовать параметр "PassengerSpawnMethod direct" в моем Apache VirtualHost для моего приложения Dashing (которое использует rufus-планировщик), чтобы заставить его работать правильно.
Это классика:
https://groups.google.com/group/rufus-ruby/search?group=rufus-ruby&q=passenger&pli=1 https://groups.google.com/forum/ (новый гугл группы)
(к сожалению, большинство ссылок в этих обсуждениях мертвы (4 года назад...))
Вам нужно будет проверить свою конфигурацию Пассажира, чтобы увидеть, как она себя ведет. Вам нужно убедиться, что процесс, в котором запускается поток rufus-scheduler, каким-то образом сохраняется.
Потратьте время, чтобы прочитать конфигурацию / руководство для пассажиров и поэкспериментировать с настройкой.
Я смутно помню, что они могли бы помочь:
http://www.modrails.com/documentation/Users%20guide%20Apache.html http://www.modrails.com/documentation/Users%20guide%20Apache.html
Ответ Ajet в Rufus Scheduler не работает интересно, он защищает:
RailsAppSpawnerIdleTime 0
PassengerMinInstances 1