在同一角色之间使用capistrano时添加时间延迟?

时间:2013-11-01 16:04:23

标签: capistrano crontab whenever

我想在同一个角色之间添加时间延迟。例如角色:app = [app1,app2,app3]

我的期望(伪代码):

app1: "1 * * * * rake 'heavy:task'"
app2: "3 * * * * rake 'heavy:task'"
app3: "2 * * * * rake 'heavy:task'"
1,2,3并不重要,但时间延迟很重要。

如何在同一个角色之间添加时间延迟?

我的实际时间表.rb:

every :hour, roles: [:app] do
  rake 'heavy:task'
end

实际结果(伪代码):

app1: "0 * * * * rake 'heavy:task'"
app2: "0 * * * * rake 'heavy:task'"
app3: "0 * * * * rake 'heavy:task'"

1 个答案:

答案 0 :(得分:0)

我刺伤了这个。随机睡眠6秒,执行服务器端

every :hour, roles: [:app] do
 on :all, in: :parallel do
  execute 'sleep #{rand(6)}'
  rake 'heavy:task'
 end
end