可以说我有这样的cronjob:
every 1.day,:at => '4:30 am' do runner "MyModel.task_to_run_at_four_thirty_in_the_morning" end
虽然,我想让’1.day’更具动态性,例如通过管理页面中的表单更改值.
然后它可能看起来像这样:
every Constant.find(2).value,:at => '4:30 am' do
要么
@const = Constant.find(2) every @const.span,:at => @const.time do
任何人都可以想出如何使这项工作?
显然,这样做的原因是我可以使用存储在我网站上的数据库中的值,就像消息说的那样
<%= "The next update is in less than #{@const.time}" #or something similar %>
解决方法
我从来没有尝试过,但你应该能够通过加载Rails环境来实现这一点,以便你可以使用你的模型类.假设您的schedule.rb在config目录中,请在schedule.rb中使用require File.dirname(__ FILE__)“./ environment”(或Rails 3的“./application”).
但是,因为无论什么时候都在crontab中生成行,所以对任何Constant进行的任何更改都需要在–update-crontab再次运行时运行.