Ruby on rails 无论何时,现在都一样

Ruby on rails 无论何时,现在都一样,ruby-on-rails,cron,whenever,Ruby On Rails,Cron,Whenever,我有一个schedule.rb文件每晚运行数据库备份。代码如下: every :day, :at => '10:20pm' do fname = Time.now.strftime('%d_%m_%Y_dump.sql') command "pg_dump -f #{fname}" command "gzip #{fname}" end 但是,这些文件没有更新,根据我的cron日志: gzip:29_12_2015_dump.sql.g

我有一个
schedule.rb
文件每晚运行数据库备份。代码如下:

every :day, :at => '10:20pm' do
  fname = Time.now.strftime('%d_%m_%Y_dump.sql')
  command "pg_dump -f #{fname}"
  command "gzip #{fname}"
end
但是,这些文件没有更新,根据我的cron日志:

gzip:29_12_2015_dump.sql.gz已存在;不覆盖

gzip:29_12_2015_dump.sql.gz已存在;不覆盖


日志文件最近于1月8日更新。这意味着
Time.now
在每次运行时都是相同的,即每天。这似乎不太可能,会发生什么事?

我意识到问题是什么:
每当
将其
schedule.rb
文件写入crontab一次时,文件中的ruby代码只会在该点进行评估,而不是每次作业运行时进行评估。因此,“时间戳”的静态值等于它写入crontab的日期

您是否使用timecop或任何类似的gem?不,我不使用timecop。如果您将
Time.now
替换为
Date.today
,该怎么办?