延迟作业Capistrano任务,而不是每次都重新启动

时间:2013-06-22 05:28:28

标签: ruby-on-rails capistrano delayed-job

这怎么可能?

我目前正在使用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?还是总是需要?

1 个答案:

答案 0 :(得分:0)

我也不确定你在寻找什么,但也许是一个简单的

cap delayed_job:stop

从命令行会怎么做?您可以在

查看所有可用任务
cap -T

<强>更新

我认为每次部署时重新启动延迟作业工作者是最佳做法。最后,工作人员执行您的代码,并且在部署之间往往会发生变化。现在,如果您的工作人员运行的代码很少更改(包括rails启动过程,环境文件,初始化程序,设置,您使用的模型等)并且您想自己处理这些问题,那么只需删除钩子,例如

after "deploy:stop",    "delayed_job:stop"
来自deploy.rb的

你很好:dj任务仍然可供您使用,但在部署期间不会触发它们。