最初尝试使用Sidekiq发送电子邮件时的ActionView :: MissingTemplate

时间:2016-09-19 14:24:54

标签: ruby-on-rails sidekiq ruby-on-rails-5

我不断向Honeybadger报告错误,因为各种邮件程序无法找到像ActionView::MissingTemplate: Missing template user_mailer/send_invitation with "mailer". Searched in: * "user_mailer"这样的模板。我找到了一种可以可靠地重现它的方法,即重新启动Unicorn worker或ssh进入服务器并使用Rails控制台手动触发电子邮件。为了使事情更有趣,如果我使用deliver_later,则只会抛出此错误,但如果我使用deliver_now则不会。显然我想要异步发送电子邮件,所以使用deliver_now并不是一个真正的选择,除非我自己创作一个手动触发电子邮件的工作,但这似乎并不是最佳的。

Sidekiq.yml

production:
  :concurrency: 10
  :queues:
    - default
    - mailers
    - elasticsearch
    - searchkick

它仍会在第二次尝试时发送电子邮件,所以我不确定这是否与Sidekiq的某些加载有关。非常感谢任何帮助。

使用Rails 5.0.0,Sidekiq 4.1.4和ActiveJob 5.0.0。

2 个答案:

答案 0 :(得分:0)

它告诉没有必需的文件,只需创建文件: app/views/user_mailer/send_invitation.html.erb

答案 1 :(得分:0)

事实证明,当我将Sidekiq从4.0.4升级到4.1.4时,它并没有杀死我的旧流程,所以它一直悬挂在monit上,并且仍在从redis中取出工作。杀死了旧的流程,现在一切都很好。感谢每一位反馈。