Как перезапустить Sidekiq, когда он давит?

Я начал Sidekiq по

bundle exec sidekiq -d -L log/sidekiq.log -C config/sidekiq.yml -e production

Иногда Сидекик был раздавлен, занят =0 и поставил в очередь> 0.

Как я могу настроить sidekiq на перезапуск после того, как он раздавлен / остановлен?

1 ответ

Вы можете использовать некоторые автоматизированные пакеты или написать собственный скрипт bash для этого.

Я лично предпочитаю писать свои собственные сценарии, поэтому позвольте мне объяснить, что:

  1. Напишите скрипт, который выполняет sidekiq, если он еще не запущен
  2. Напишите cronjob для выполнения этого скрипта каждую минуту

Обратите внимание, что этот метод не является мгновенным, что означает, что у вас может быть время простоя до 1 минуты, так как cronjob работает каждую минуту. Так что, если ваш проект чувствителен к этому, вы можете использовать один из инструментов управления процессами, таких как monit или же god,

Ваш скрипт bash должен содержать вашу команду,

bundle exec sidekiq -d -L log/sidekiq.log -C config/sidekiq.yml -e production

Но убедитесь, что вы используете абсолютные пути, если вы собираетесь хранить свой скрипт вне директории вашего проекта.

Вот полезная тема о написании сценария оболочки, чтобы проверить, существует ли этот процесс.

Чтобы запустить скрипт каждую минуту, сделайте следующее:

  1. Перейти к вашему терминалу
  2. Тип crontab -e
  3. присоединять * * * * * /bin/bash -l -c 'cd /PATH/TO/YOUR/DIR && sh SCRIPTNAME.sh'
  4. Сохранить и выйти из редактора

Делая это, вы говорите своему компьютеру выполнять ваш скрипт каждую минуту. Обычно люди предпочитают писать только * * * * * /path/to/script.sh их crontab, но это не удается в некоторых обстоятельствах.

Надеюсь это поможет.

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