每当gem时有多个schedule.rb文件

时间:2013-04-05 20:36:46

标签: ruby ruby-on-rails-3 crontab whenever

在rails中使用whatever gem来设置cron作业时,是否可以有多个schedule.rb文件?我希望有一个常规的schedule.rb文件和一个将要部署到不同服务器的reports_schedule.rb文件,它有自己的特定报告环境。

每当使用schedule.rb文件时如何?这可能吗?

2 个答案:

答案 0 :(得分:1)

看起来有点丑陋。查看源代码on job_list.rb:25 whenever just does an instance eval。所以你可以做类似以下的事情。

schedule.rb

#Load reporting schedules
instance_eval(File.read('reporting_schedule.rb'), 'reporting_schedule.rb')

# All your regular jobs
# ...

reporting_schedule.rb

#Need some way to know if you are on the reporting server
if `hostname` =~ /reporting_server/
  # All your reporting jobs
  # ...
end

使用when命令为我做了一些快速测试。虽然没有尝试在部署中使用它。

答案 1 :(得分:1)

在询问问题后不确定是否添加了此内容,但您现在似乎能够进行基于角色的安排:请参阅https://github.com/javan/whenever上的自述文件