这怎么可能?
我目前正在使用delayed_job
附带的Capistrano配方这就是我所拥有的:
# Delayed Job recipes
require "delayed/recipes"
set :rails_env, "production" # added for delayed job
after "deploy:stop", "delayed_job:stop"
after "deploy:start", "delayed_job:start"
after "deploy:restart", "delayed_job:restart"
我不太了解Capistrano阶段,也许解决方案是将正确的任务设置为正确的阶段。
每次部署我都会
executing `delayed_job:restart'
这真的需要吗?有没有办法在需要时重新启动delayed_job?还是总是需要?
答案 0 :(得分:0)
我也不确定你在寻找什么,但也许是一个简单的
cap delayed_job:stop
从命令行会怎么做?您可以在
查看所有可用任务cap -T
<强>更新强>
我认为每次部署时重新启动延迟作业工作者是最佳做法。最后,工作人员执行您的代码,并且在部署之间往往会发生变化。现在,如果您的工作人员运行的代码很少更改(包括rails启动过程,环境文件,初始化程序,设置,您使用的模型等)并且您想自己处理这些问题,那么只需删除钩子,例如
after "deploy:stop", "delayed_job:stop"
来自deploy.rb的你很好:dj任务仍然可供您使用,但在部署期间不会触发它们。