每当 gem Time.now 总是一样
Whenever gem Time.now always the same
我每晚有一个 schedule.rb
文件 运行ning 数据库备份。代码如下:
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 already exists; not overwritten
gzip: 29_12_2015_dump.sql.gz already exists; not overwritten
日志文件最近更新于 1 月 8 日。这意味着 Time.now
每次都是相同的 运行,即每天。这似乎不太可能,这是怎么回事?
我意识到问题是什么:whenever
将它的 schedule.rb
文件写入 crontab 一次,因此文件中的 ruby 代码只在那个时候计算,而不是每次都计算工作时间 运行。因此 "timestamp" 的静态值等于它写入 crontab 的日期。
我每晚有一个 schedule.rb
文件 运行ning 数据库备份。代码如下:
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 already exists; not overwritten
gzip: 29_12_2015_dump.sql.gz already exists; not overwritten
日志文件最近更新于 1 月 8 日。这意味着 Time.now
每次都是相同的 运行,即每天。这似乎不太可能,这是怎么回事?
我意识到问题是什么:whenever
将它的 schedule.rb
文件写入 crontab 一次,因此文件中的 ruby 代码只在那个时候计算,而不是每次都计算工作时间 运行。因此 "timestamp" 的静态值等于它写入 crontab 的日期。