Остановите определенную работу при развертывании новой версии приложения Sinatra

У меня есть задание rufus-scheduler, работающее в приложении Sinatra (Phusion Passenger с NGINX). На дне app.rb Я имею:

  scheduler.every '5m' do
    do_something_cool
  end

Это работа работает. Но когда я использую Capistrano для обновления приложения новой версией, я замечаю, что старое задание все еще присутствует, и каждый запускается с 5-минутным интервалом.

Как мне убедиться, что старое задание rufus-scheduler выключено, а новое запущено?

Я попытался добавить это внизу:

at_exit do
  if scheduler
    scheduler.shutdown
  end
end

Но это не сработало.

1 ответ

Я не знаком с rufus-scheduler, но, как я прочитал в документации, он просто использует потоки для графика. Так что вам просто нужно убедиться, что ваш старый процесс был закрыт.

Другие вопросы по тегам