вкладка cron для перезагрузки моего сервера delayed_job - PullRequest
1 голос
/ 23 июня 2010

Я хочу создать вкладку cront, чтобы перезапустить мой сервер delayed_job, если он сломается.

как проверить, работает ли мой сервер delayed_job или нет командой ps?

как я могу создатьвкладка cron для проверки работоспособности?Например, если мой сервер сломается, то вкладка cron перезапустит его.Я хочу установить cront tab, чтобы проверять его каждые 5 минут.

Ответы [ 5 ]

4 голосов
/ 23 июня 2010

Это мой скрипт, который проверяет, созданы ли pid файлы или нет.Если pid-файл не существует, он запустит сервер delayed_job.Я создал свой скрипт в корневой папке приложения Это мой скрипт delayed_job.sh

if ! [ -s delayed_job.pids ]; then
  RAILS_ENV=production /app/script/delayed_job start
end

И я установил этот скрипт на crontab следующим образом.

*/5 * * * * RAILS_ENV=production /bin/bash /app/delayed_job.sh

Он работает нормально.Если я сломаю сервер delayed_job, то он автоматически запустит мой сервер delayed_job.Это правильный путь ??

2 голосов
/ 29 декабря 2010

Правильный путь, если у вас есть один процесс delayed_job:

#!/bin/bash

if ! [ -s #{pids_dir}/delayed_job.pid ]; then  
  RAILS_ENV=production #{RAILS_APP}/script/delayed_job start  
fi
0 голосов
/ 22 сентября 2012

Вот мое решение. Я проверяю, запущена ли у вас одна работа или у вас больше одной. Если вы это сделаете, выйдите, иначе начните работу с двумя работниками. Вам, вероятно, не понадобится эта /usr/local/bin/ruby часть.

#!/bin/bash

if [[ ! -f /apps/gits/myapp/tmp/pids/delayed_job.pid 
      && ! -f /apps/gits/myapp/tmp/pids/delayed_job.0.pid ]];
then
  echo "DJ not running" 
  cd /apps/gits/myapp
  RAILS_ENV=production /usr/local/bin/ruby script/delayed_job -n 2 start
  echo "DJ Started"
else
  echo "DJ running"
fi

А потом мой cron запускается каждый час, просто убедитесь, что bash исполняемый.

0 */1 * * * /apps/gits/scripts/start_dj_if_not_running.sh 
               >> /apps/gits/myapp/log/runner.log 2>&1
0 голосов
/ 24 июня 2010

Если вы не придерживаетесь cron, Monit может быть более полезным. http://mmonit.com/monit/

0 голосов
/ 24 июня 2010

Я использую runit / sv для управления delayed_job.Включает мониторинг, автоматический перезапуск, ведение журнала.

...