Развернуть отложенное задание с сервера приложений?

Вот мой простой идеальный сценарий, когда я хочу, чтобы задание выполнялось с задержкой:

  • Когда запускается первый сервер приложений (будь то дворняга или пассажир), он запускает моих отложенных рабочих.
  • Когда последний запущенный сервер приложений завершает работу, он убивает всех отложенных рабочих заданий.

Первая часть (начало) выполнима, хотя я не уверен, какой «правильный» или «лучший» способ сделать это. Просто сделать условный (если процесс еще не запущен) системный вызов delayed_job start?

Вторая часть (завершающая) - ну я не уверен, выполнимо это или нет. Совершенно не знаю, как можно достичь этого эффекта.

Есть мысли или идеи?

Есть ли другой способ начать / закончить работу с отложенными работниками, который, по вашему мнению, является лучшим?

Дополнительный вопрос: основные вопросы выше относятся к производственной среде - более сложный случай, потому что одновременно работает несколько серверов приложений. Можно ли сделать то же самое в среде разработки (где гарантированно будет только один сервер приложений, а не их кластер) путем разветвления дочернего процесса для запуска отложенных рабочих заданий, которые всегда завершались бы, когда завершается родительский? Как бы я это сделал?


person Allan Grant    schedule 20.01.2010    source источник


Ответы (1)


Вы определенно можете завершить завершение с помощью god.

Просто наблюдайте за процессами приложения, и бог вызовет обратный вызов, когда все они остановятся.

person Joe Martinez    schedule 20.01.2010
comment
Хорошая вещь! Я разберусь с этим. Спасибо. - person Allan Grant; 21.01.2010