Rails 5 deliver_later不发送包含更新内容的邮件

时间:2016-09-08 04:58:24

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

我使用sidekiq进行动作管理器交付工作。我需要在订阅30分钟后向用户发送thanks mail

@user = User.new(user_params)
if @user.save
UserMailer.thanks_mail(@user).deliver_later!(wait: 30 minutes)
end

现在我已在thanks_mail.html.erb文件中更改了感谢邮件的内容。

当我毫不拖延地发送订阅邮件时:

UserMailer.thanks_mail(@user).deliver_now
已使用更新的内容触发

邮件。

当我发送延迟30分钟的订阅邮件时:

UserMailer.thanks_mail(@user).deliver_later!(wait: 30 minutes)

邮件与旧内容一起发送。有谁可以帮我这个?

1 个答案:

答案 0 :(得分:1)

您需要重启sidekiq。请参阅此主题here

  1. 使用ps -ef | grep sidekiq查找pid
  2. 创建一个文件(例如sidekiq.pid),其中唯一的内容是您刚刚找到的pid
  3. sidekiqctl stop <pidfile_name>
  4. 将来启动sidekiq时使用-P <pidfile_name>--pidfile <pidfile_name>