Прагматичные способы мониторинга очередей Resque в Rails - PullRequest
0 голосов
/ 03 января 2012

Я хочу автоматизировать запуск / перезапуск очередей с помощью Resque в моем приложении Ruby on Rails. (работает на JRuby)

Я хочу убедиться, что выполнены следующие критерии:

  1. Рабочие запускаются после развертывания с capistrano
  2. Рабочие перезапускаются, если по какой-либо причине они умирают
  3. Рабочие, потребляющие слишком много памяти, останавливаются / перезапускаются и могут отправить мне уведомление по электронной почте

Существуют ли инструменты, которые в настоящее время предоставляют эту функцию или хотя бы ее часть? Если нет ничего, что перезапускает очередь / работника, я хотел бы получить уведомление как минимум, чтобы я мог сделать это вручную.

Ответы [ 2 ]

2 голосов
/ 04 января 2012

Самый простой способ сделать это - использовать такую ​​программу, как Бог или Монит , чтобы получить # 2 и # 3. Для # 1 вы можете просто настроить скрипт Capistrano для отправки kill -INT всем работникам Resque, тогда программа мониторинга запустит их снова.

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

1 голос
/ 03 января 2012

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

...