每当 gem 仅在一台机器上有 cronjob 时?
我们大规模部署了大约十几台服务器。我们想使用每当 gem,但我无法找到一种方法来说明 cron 作业应该在哪台机器上进行!我们只希望这些作业在执行后台作业的服务器上运行。
有没有办法指定这一点?
We have a large deployment of around a dozen servers. We'd like to use the Whenever gem but I can't figure out a way to say which machine the cron jobs should go on! We only want these jobs to run on our server that does background jobs.
Is there a way to specify this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您使用 Capistrano 部署项目并使用默认的 Whenever Recipe< /a>,您可以创建一个新的 Capistrano 角色
,并在您的
deploy.rb
文件中设置该角色,这样任务将只在指定的服务器上执行。
If you deploy the project with Capistrano and you use the default Whenever recipe, you can create a new Capistrano role
and set the role in your
deploy.rb
fileIn this way, the task will be executed only on the specified server.
whenever 已预先配置为针对 db 角色运行,因此如果您的 db 角色也是后台计算机的角色,则无需执行 'role :whenever, "192.168.0.1"' hack。请参阅代码
https://github.com/javan/每当/blob/master/lib/每当/capistrano.rb#L2
whenever is preconfigured to run against the db role, so if your db role is also the background machine's role you don't have to do the 'role :whenever, "192.168.0.1"' hack. see the codes
https://github.com/javan/whenever/blob/master/lib/whenever/capistrano.rb#L2