Ruby on rails 工头在开发过程中因延迟重新加载工作而中止

Ruby on rails 工头在开发过程中因延迟重新加载工作而中止,ruby-on-rails,delayed-job,foreman,Ruby On Rails,Delayed Job,Foreman,我使用foreman在本地为我的开发环境运行服务器和延迟的作业过程 延迟作业会定期自动重新加载代码,如果代码中出现语法错误,则延迟作业进程将退出,并导致foreman停止所有其他进程。这意味着如果我在开发环境中保存了一个有错误的文件,就会停止 堆栈跟踪的关键行是(我相信): 我知道我可以用config.cache\u classes=false停止重新加载延迟的\u作业,但我希望这是真的,这样我的Web服务器就可以重新加载每个请求的类 我希望我的工作也能重新加载我的课程。是否有一种方法可以让延迟

我使用foreman在本地为我的开发环境运行服务器和延迟的作业过程

延迟作业会定期自动重新加载代码,如果代码中出现语法错误,则延迟作业进程将退出,并导致foreman停止所有其他进程。这意味着如果我在开发环境中保存了一个有错误的文件,就会停止

堆栈跟踪的关键行是(我相信):

我知道我可以用
config.cache\u classes=false
停止重新加载延迟的\u作业,但我希望这是真的,这样我的Web服务器就可以重新加载每个请求的类


我希望我的工作也能重新加载我的课程。是否有一种方法可以让延迟的作业尝试重新加载,但在重新加载失败时继续运行?如果没有,是否有其他方法可以关闭延迟作业的重新加载功能?

我的同事建议将延迟作业包装在脚本中,如果它意外退出,将重新启动它(在
myproject/script/delayed\u job.sh
中):

proc文件中的:

delayed_jobs: script/delayed_jobs.sh
这个脚本完成了我们需要的工作

#!/bin/bash
while true; do
    bundle exec rake jobs:work
    echo 'Delayed jobs quit... restarting in 5s'
    sleep 5
done
delayed_jobs: script/delayed_jobs.sh