Напротив рельсовых инициализаторов (2.xx)? - PullRequest
1 голос
/ 17 июля 2010

Я запускаю несколько демонов в config / initializer /, когда запускаю приложение rails, но мне нужен способ, чтобы определить, когда приложение закрывается, и остановить демоны.

Есть ли какие-нибудь хуки / местагде я могу это сделать?

1 Ответ

2 голосов
/ 17 июля 2010

Насколько я знаю, формального способа отменить приложение в рамках Rails нет. Вы можете рассмотреть возможность установки одного или нескольких обработчиков для базового языкового средства Ruby at_exit . Однако это будет иметь дело только с заказным завершением работы приложения.

Более общей стратегией было бы использование инфраструктуры мониторинга сервера, которая бы отслеживала упорядоченные и неожиданные случаи выхода для вашего приложения. Я очень сомневаюсь, что обработчики at_exit будут вызваны, если ваш экземпляр rails был размещен внутри Passenger и по какой-то причине произошел сбой соответствующего сервера Apache или Nginx, хотя я на самом деле этого не проверял. Подобные наблюдения, вероятно, применимы к любому контейнеру приложения, который неожиданно завершит работу.

Вы можете рассмотреть что-то вроде Бога или Monit или Nagios (в зависимости от того, насколько сложны ваши требования) для реализации общей стратегии передачи приложений и выполнения правильная вещь для каждого стечения обстоятельств. Эти фреймворки также могут отслеживать эти демоны.

...