延迟作业在一段时间后停止
Delayed jobs stops after some time
我有一个严重依赖延迟作业的应用程序。所以我设置了两台服务器,其中一台服务器启动应用程序(m3.medium ec2 实例),而另一台服务器 运行 是我的延迟作业(t2.micro ec2 实例)。我为延迟的作业创建了一个启动和停止脚本。这就是我面临的问题。延迟作业 运行 顺利,但问题是它们会在一段时间后自动停止。因此,每次它们停止时,我都必须手动重新启动它们。我不知道为什么他们会在处理作业的过程中停下来。
基本上我有两个问题:
我该怎么做才能让作业不停止,或者如果它们停止,它们会在一段时间后自动启动immediately/or?
如何让它们在 reboot/start 实例上自动启动?
我看过很多类似的问题,但 none 似乎有帮助。
感谢任何建议。
编辑 1:
我的 start/stop 延迟作业脚本。
set -e
# drop privs if necessary
if [ "$(id -u)" == "0" ]; then
exec su $(stat -c %U $(dirname $(readlink -f [=10=]))/../config/environment.rb) -c "/bin/bash [=10=] $@"
exit -1;
fi
# switch to app root
cd $(dirname $(readlink -f [=10=]))/..
# 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
看来您可能遇到了内存问题,这正在杀死它。你可以尝试 Monit 在它被杀死时自动启动工作
参考:http://railscasts.com/episodes/375-monit
选择:
您也可以使用 sidekiq 而不是延迟作业
我有一个严重依赖延迟作业的应用程序。所以我设置了两台服务器,其中一台服务器启动应用程序(m3.medium ec2 实例),而另一台服务器 运行 是我的延迟作业(t2.micro ec2 实例)。我为延迟的作业创建了一个启动和停止脚本。这就是我面临的问题。延迟作业 运行 顺利,但问题是它们会在一段时间后自动停止。因此,每次它们停止时,我都必须手动重新启动它们。我不知道为什么他们会在处理作业的过程中停下来。
基本上我有两个问题:
我该怎么做才能让作业不停止,或者如果它们停止,它们会在一段时间后自动启动immediately/or?
如何让它们在 reboot/start 实例上自动启动?
我看过很多类似的问题,但 none 似乎有帮助。
感谢任何建议。
编辑 1:
我的 start/stop 延迟作业脚本。
set -e
# drop privs if necessary
if [ "$(id -u)" == "0" ]; then
exec su $(stat -c %U $(dirname $(readlink -f [=10=]))/../config/environment.rb) -c "/bin/bash [=10=] $@"
exit -1;
fi
# switch to app root
cd $(dirname $(readlink -f [=10=]))/..
# 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
看来您可能遇到了内存问题,这正在杀死它。你可以尝试 Monit 在它被杀死时自动启动工作
参考:http://railscasts.com/episodes/375-monit
选择: 您也可以使用 sidekiq 而不是延迟作业