Динамические расписания теряются, пока resque разветвляет новый процесс

Я использую resque-scheduler для планирования динамических cron на основе ввода пользователя. Мой серверный стек использует Ubuntu 12.04 с конфигурацией пассажира + nginx.

Я установил Resque::Scheduler.dynamic = true и использовал метод set_schedule с параметром persist: true для планирования динамических заданий.

Сначала проблема заключалась в том, что это выдавало мне какую-то ошибку Passenger: -

Redis::InheritedError (Tried to use a connection from a child process without reconnecting. You need to reconnect to Redis after forking.

Итак, я ввел следующий блок в свой инициализатор resque: -

PhusionPassenger.on_event(:starting_worker_process) do |forked|
  if forked
    # Reconnect Resque Redis instance.
    Resque.redis.client.reconnect
  end
end

Теперь после каждого перезапуска или планирования нового динамического задания он загружает мои статические расписания, а динамические расписания теряются. Даже он обновляет расписания в случайное время и загружает только статические расписания.


person user1069420    schedule 23.12.2013    source источник


Ответы (1)


Проблема с загрузкой динамических расписаний есть в гем-версии. Пожалуйста, обратитесь к последнему выпуску планировщика resque на github, это должно решить проблему (исправлено около 10 дней назад).

person Ishu    schedule 24.12.2013