0

我正在使用delayed_job_active_record将长时间运行的进程推到后台。除了发送电子邮件外,它工作得很好。它处理工作并完成它,但电子邮件从不来这里。这个问题只存在于生产中。所以,我尝试来回切换邮件设置,结果证明如果我使用开发设置它会运行良好,但如果我使用生产设置它不会。

我已经在没有 的情况下测试了邮件程序设置delayed_job,它在两种环境中都运行良好,所以我确信问题不在于电子邮件设置。

在生产环境中

config.action_mailer.default_url_options = { :host => 'www.xyz.com' }
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings =  {
  :address        => 'smtp.sendgrid.net',
  :port           => '587',
  :authentication => :plain,
  :user_name      => 'xyz',
  :password       => 'password123',
  :domain         => 'heroku.com'
}

在开发环境中

config.action_mailer.default_url_options = { :host => 'localhost:3000' }
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = { :address => "localhost", :port => 1025 }

任何想法 ?

4

1 回答 1

1

RAILS_ENV当你开始你的工人时,你设置了吗?

RAILS_ENV=production script/delayed_job start

https://github.com/collectiveidea/delayed_job#running-jobs

于 2013-10-12T16:53:30.390 回答