Rails 延迟作业在暂存时停止
Rails delayed jobs stops on staging
如何确定延迟作业是否 运行 是否在后台 staging.If 它已停止,因此它应该通过检查某些进程 pid 或其他东西来启动 运行。我的问题有时会延迟工作停止,我无法弄清楚为什么会这样,所以任何人都可以告诉我我应该怎么做才能解决这个问题。
这是我检查状态的命令
RAILS_ENV=staging ./script/delayed_job status
但我需要做一些事情来自动检查延迟的工作是否是 运行。如果不是,它应该开始 运行
要监视进程是否 运行(并可选择重新启动它),请使用类似 god.
的东西
如果您的后台作业即将结束,您应该增加日志的详细程度,并可能使用远程异常通知程序,例如 Airbrake。
两者都有几十种选择,请自行研究。
要手动检查是否有进程 运行,请使用
> ps aux
或 top 或 htop 列出现有进程。
在根目录中创建一个 shell 脚本文件并放置此代码。
然后给文件权限
ps_out=`ps -ef | grep delayed | grep -v 'grep' | grep -v [=10=]`
result=$(echo $ps_out | grep "")
if [[ "$result" != "" ]];then
echo "Running"
else
/path-to-your-project/delayed_job start
fi
现在在 crontab 中添加这个
crontab -e
如何确定延迟作业是否 运行 是否在后台 staging.If 它已停止,因此它应该通过检查某些进程 pid 或其他东西来启动 运行。我的问题有时会延迟工作停止,我无法弄清楚为什么会这样,所以任何人都可以告诉我我应该怎么做才能解决这个问题。 这是我检查状态的命令
RAILS_ENV=staging ./script/delayed_job status
但我需要做一些事情来自动检查延迟的工作是否是 运行。如果不是,它应该开始 运行
要监视进程是否 运行(并可选择重新启动它),请使用类似 god.
的东西如果您的后台作业即将结束,您应该增加日志的详细程度,并可能使用远程异常通知程序,例如 Airbrake。
两者都有几十种选择,请自行研究。
要手动检查是否有进程 运行,请使用
> ps aux
或 top 或 htop 列出现有进程。
在根目录中创建一个 shell 脚本文件并放置此代码。
然后给文件权限
ps_out=`ps -ef | grep delayed | grep -v 'grep' | grep -v [=10=]`
result=$(echo $ps_out | grep "")
if [[ "$result" != "" ]];then
echo "Running"
else
/path-to-your-project/delayed_job start
fi
现在在 crontab 中添加这个
crontab -e