【发布时间】:2016-04-13 18:17:29
【问题描述】:
我正在使用 gem 并且我已经编写了一个 rake 任务来发送电子邮件。 当我使用此代码时,在我的 schedule.rb 中
set :environment, "development"
set :output, {:error => "log/cron_error_log.log",
:standard =>"log/cron_log.log"}
every :day, :at => '11:20pm' do
rake "send_daily_reports"
end
我没有收到邮件,但是当我使用这样的东西时
every 5.minutes do
rake "send_daily_reports"
end
我每分钟收到 5 封邮件。
我尝试替换
every :day
与
every 1.day
但它仍然无法正常工作。 我遵循了每一步。当我将代码拉入云端时,我使用命令
whenever -w
更新 crontab,然后重新启动服务器。我以为linux系统时间可能有问题。但是当我使用 日期 终端中的命令我得到了正确的日期和时间。我还检查了 cron_error 日志,但没有记录错误。有谁能帮帮我吗?
【问题讨论】:
-
crontab -l报告什么? -
send_daily_reports 是什么样的?是否可能存在某种时区问题,导致 send_daily_reports 在晚上 11:20 无法报告任何数据?
-
@msergeant 我在上午 4 点 20 分收到邮件,当时设定的时间是“晚上 11 点 20 分”。所以我猜linux中的时区设置有错误。我更改了时区,现在它可以工作了。以前默认时区是UTC,我认为系统会根据时区自动设置自己。一旦我更改了时区,它现在就可以工作了。
标签: ruby-on-rails ruby whenever