宝石只有一台机器上有cronjob吗?

时间:2011-02-21 10:57:50

标签: ruby-on-rails whenever

我们大量部署了大约十几台服务器。我们想使用Whenever gem,但我无法想办法说出cron作业应该继续使用哪台机器!我们只希望这些作业在我们的后台作业服务器上运行。

有没有办法指定这个?

2 个答案:

答案 0 :(得分:18)

如果使用Capistrano部署项目并使用默认的Whenever recipe,则可以创建新的Capistrano角色

role :whenever, "192.168.1.1"

并在deploy.rb文件中设置角色

set :whenever_roles, "whenever"

这样,任务将仅在指定的服务器上执行。

答案 1 :(得分:1)

每当预先配置为针对db角色运行时,如果您的db角色也是后台机器的角色,则不必执行'role:once,192.168.0.1“'hack。看到代码

https://github.com/javan/whenever/blob/master/lib/whenever/capistrano.rb#L2