Rails在暂存时延迟了作业停止

时间:2016-12-08 05:08:01

标签: ruby linux ruby-on-rails-4 ruby-on-rails-5 delayed-job

如何判断延迟作业是否在后台运行时是否正在运行。如果它已停止,那么它应该通过检查一些进程pid或其他东西开始运行。我的问题是暂停延迟作业停止有时我无法找出它为什么会发生,所以任何人都可以告诉我应该怎样做才能解决这个问题。 这是我检查状态的命令

RAILS_ENV=staging ./script/delayed_job status

但我需要做一些应该自动检查延迟作业是否正在运行的事情.IF不应该开始运行

2 个答案:

答案 0 :(得分:1)

在根目录中创建一个shell脚本文件并放置此代码 然后授予文件

的权限
ps_out=`ps -ef | grep delayed | grep -v 'grep' | grep -v $0`
result=$(echo $ps_out | grep "$1")
if [[ "$result" != "" ]];then
    echo "Running"
else
    /path-to-your-project/delayed_job start
fi

现在将其添加到crontab

crontab -e

答案 1 :(得分:0)

要监控进程是否正在运行(并可选择重新启动),请使用god之类的内容。

如果您的后台工作正在消亡,您应该增加日志详细程度,并且可以使用Airbrake之类的远程异常通知程序。

两者都有很多替代方案,请自行研究。

要手动检查进程是否正在运行,请使用

> ps aux

或top或htop列出现有流程。