У меня есть приложение, которое сильно зависит от отложенных заданий. Итак, я настроил два сервера, один из которых обслуживает приложение (экземпляр m3.medium ec2), а другой выполняет мои отложенные задания (экземпляр t2.micro ec2). Я создал сценарий запуска и остановки для отложенных заданий. Здесь я сталкиваюсь с проблемами. Отложенные задания выполняются без сбоев, но проблема в том, что они автоматически останавливаются через некоторое время. Поэтому каждый раз, когда они останавливаются, мне приходится вручную запускать их снова. Я понятия не имею, почему они останавливаются посреди обработки задания.
Итак, в основном у меня есть два вопроса:
Что я могу сделать, чтобы задания не останавливались, а если и останавливались, то запускались автоматически сразу/или через какое-то время?
Как я могу заставить их запускаться автоматически при перезагрузке/запуске экземпляра?
Я просмотрел много подобных вопросов, но никто не помогает.
Любые советы приветствуются.
Редактировать 1:
Мой сценарий запуска/остановки для отложенных заданий.
set -e
# drop privs if necessary
if [ "$(id -u)" == "0" ]; then
exec su $(stat -c %U $(dirname $(readlink -f $0))/../config/environment.rb) -c "/bin/bash $0 $@"
exit -1;
fi
# switch to app root
cd $(dirname $(readlink -f $0))/..
# set up config
if [ -e "config/GEM_HOME" ]; then
export GEM_HOME=$(cat config/GEM_HOME)
fi
#export GEM_HOME=/path/to/gem/home
export RAILS_ENV=production
# run delayed jobs
exec script/delayed_job $@
# following an article I have tried adding the following code restart on crash.
# restarting the service
respawn
#Give up if restart occurs 10 times in 90 seconds.
respawn limit 10 90
respawn
. Это может помочь - superuser.com/questions/507576/ Посмотрите журналы на этом сервере - person Sairam   schedule 18.01.2017