Как перезапустить Sidekiq, когда он давит? - PullRequest
0 голосов
/ 06 февраля 2019

Я запустил Sidekiq с помощью

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

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

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

1 Ответ

0 голосов
/ 06 февраля 2019

Вы можете использовать некоторые автоматизированные пакеты или написать собственный скрипт 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, но в некоторых случаях это не получается.

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

...