delayed_job不会重启

时间:2017-02-01 18:49:44

标签: ruby-on-rails delayed-job

调试延迟作业没有重启的最佳方法是什么?

运行restart会显示它正在重新启动处理,但是grepping显示没有进程。

$ RAILS_ENV=production ruby script/delayed_job -n3 --pid-dir=/dem/pids/ restart
Warning: no instances running. Starting...
Warning: no instances running. Starting...
Warning: no instances running. Starting...

$ ps -aux | grep delay
produser    3471  0.0  0.0   7232   612 pts/4    S+   10:28   0:00 tail -f delayed_job.log
produser    4059  0.0  0.0  11740   928 pts/0    S+   10:32   0:00 grep --color=auto delay

$ RAILS_ENV=production ruby script/delayed_job -n3 --pid-dir=/dem/pids/ restart
Warning: no instances running. Starting...
Warning: no instances running. Starting...
Warning: no instances running. Starting...

在拖尾delayed_job.log文件时,它只显示处理重启和静默失败。

2017-02-01T10:48:04-0800: [Worker(delayed_job.0 host:app pid:6257)] worker started
2017-02-01T10:48:04-0800: [Worker(delayed_job.1 host:app pid:6267)] worker started

1 个答案:

答案 0 :(得分:0)

我找到了自己问题的答案。记录此处,以防有人在搜索中找到。

如果您发现自己处于相同的情况,请尝试在前台运行该流程(而非背景)

RAILS_ENV=production ruby script/delayed_job --pid-dir=/dem/pids/ run

输出是:

found unexpected end of stream while scanning a quoted scalar at line 165 column 14

googling包含来自dj来源的结果:Malformed yaml in handler could crash all delayed_job workers

这是一个很好的领导。

  • 如果你的处理程序/数据格式不正确,那么DJ将默默地失败。
  • 如果您在DJ中处理电子邮件,那么您可能会有一些大量的处理程序列,因为如果有人转发电子邮件,则会包含该主题。让人惊讶。

我做了什么?我查询了delayed_jobs我们的电子邮件处理程序。

结果是什么? 1个带有巨大处理程序的工作。

也可能只是query for the longest column

删除作业并运行run命令后,它正常开始处理。