我已經在rails中編寫了我的第一個rake任務,我用Heroku調度程序設置了它,並且它正在運行,但郵件沒有發送。我的郵件設置很好,因爲我將它用於各種其他事情,我會想象這是我的代碼在Rake任務中的問題。任何幫助將非常感激。Rake任務不發送郵件軌道
的lib /任務/ uncomplete_form.rake
desc "Remind users if they haven't completed quote form"
task uncomplete_form: :environment do
puts 'Reminding users of uncomplete quote form'
date = Date.parse('december 18 2016')
quickcontacts = Quickcontact.where(created_at: date.midnight..Time.now)
quickcontacts.each do |quickcontact|
next unless quickcontact.created_at > 1.hour.ago
if quickcontact.p_p = nil
QuickcontactMailer.uncomplete_form(@quickcontact).deliver
end
end
puts 'done.'
end
通過運行耙uncomplete_form我得到uncomplete報價表
做的
提醒用戶。
運行 Heroku的運行耙uncomplete_form 我得到
Reminding users of uncomplete quote form
Quickcontact Load (1.5ms) SELECT "quickcontacts".* FROM "quickcontacts" WHERE ("quickcontacts"."created_at" BETWEEN '2016-12-18 00:00:00.000000' AND '2016-12-20 12:09:23.683977')
done.
它似乎並沒有被拾起任何quickcontacts - 但是如果在控制檯我運行:
date = Date.parse('december 18 2016')
其次
quickcontacts = Quickcontact.where(created_at: date.midnight..Time.now)
它找到了exp ected接觸
可能是一個時區問題。 Heroku schedular將在UTC工作。嘗試在這種方式進行調試。 – Jayaprakash
我想到了這一點,但UTC時間是在我面前2個小時,一些quickcontacts昨天(十二月十九日)創建,所以它不應該有所作爲,我不認爲。 – DanRio