所以我試圖運行rake任務:爲什麼這個rake任務似乎沒有在Heroku中運行?
heroku run:detached rake some_task --app myproductionapp
Heroku的告訴我,當我跑在我的控制檯登錄命令,似乎沒什麼用heroku logs -p run.8334 -a myproductionapp
查看日誌。這意味着任務沒有運行(或者沒有?)。在專業的測功機方案中,我在P_L級有1個網絡,在1x級有1個時鐘,在P_L級有1個sidekiq dyno。我需要設置一個工人測功機嗎?
爲了測試,如果這件事情很明顯:
所以,當我做Mailinator測試並調用我使用電子郵件用戶的一個時間的函數,我得到一個實際的「處理」的消息,如下面我在Mailinator看到電子郵件:
MyEmailer#send_this_message: processed outbound mail in 407.3ms
=> #<ActionMailer::Base::NullMail:0x007gg91b5700a0>
當我嘗試對生產我沒有得到處理的消息的反應,我只得到的ActionMailer :: Base的:: NullMail如下。
=> #<ActionMailer::Base::NullMail:0x007gg91b5700a0>
郵件設置爲分期:
config.action_mailer.default_url_options = { :host => ENV['STAGING_HOST'] }
# ActionMailer Config
# Setup for production - deliveries, no errors raised
config.action_mailer.delivery_method = :smtp
#config.action_mailer.perform_deliveries = true
#config.action_mailer.raise_delivery_errors = false
#config.action_mailer.default :charset => "utf-8"
config.action_mailer.smtp_settings = {
:address => "smtp.mandrillapp.com",
:port => 587,
:user_name => ENV['MANDRILLUSER'],
:password => ENV['MANDRILL_KEY'],
:domain => 'heroku.com'
郵件設置生產:
# ActionMailer Config
# Setup for production - deliveries, no errors raised
config.action_mailer.delivery_method = :smtp
#config.action_mailer.perform_deliveries = true
#config.action_mailer.raise_delivery_errors = false
#config.action_mailer.default :charset => "utf-8"
config.action_mailer.smtp_settings = {
:address => "smtp.mandrillapp.com",
:port => 587,
:user_name => ENV['MANDRILLUSER'],
:password => ENV['MANDRILL_KEY'],
:domain => 'productionapp.com',
:enable_startls_auto => true
}
你能分享任務嗎?你怎麼知道它沒有運行?你期待它寫入日誌文件嗎? – wpp
@wpp我期待它通過Mandrill發送幾百封電子郵件,並且這些電子郵件不會被髮送(我會在Mandrill儀表板中看到一個尖峯)。當我設置臨時環境時,他們正在發送。 – Nona
我根據您在問題中添加的內容更新了我的答案,請考慮將我的答案標記爲已接受。 – SsouLlesS