【问题标题】:ActionMailer observers not working with delayed_jobActionMailer 观察者不使用delayed_job
【发布时间】:2012-12-19 04:31:08
【问题描述】:

我有一个 ActionMailer 观察器,它在正常发送期间工作得很好,但是当我将交付发送到延迟作业时,它根本不会被调用。这是延迟作业本身的功能,还是我的观察者特有的功能?

控制器:

BulkMailer.delay.blast(recipients, email, template)

初始化器:

ActionMailer::Base.register_observer(MailObserver)

观察者

class MailObserver
  def self.delivered_email(message)
    Rails.logger.debug 'Message: finished'
  end
end

【问题讨论】:

  • 你有没有尝试在完成上述更改后重新启动延迟作业!
  • 我也遇到过这个问题。在 git 分支之间切换或在测试与邮件相关的功能之前,我肯定会重新启动工作人员。来自Resque's GitHub page,“默认情况下,Resque 不会知道您的应用程序的环境。也就是说,它无法找到并运行您的作业 - 它需要将您的应用程序加载到内存中。” Resque 摇滚,但这是一个需要注意的小问题。

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2 actionmailer delayed-job


【解决方案1】:

代码本身很好,Delayed Job 和 ActionMailer 观察者是兼容的。我的问题通过重启工人解决了。

【讨论】:

  • 现在答案够全面了吗?
猜你喜欢
  • 2013-01-30
  • 2018-12-30
  • 1970-01-01
  • 2014-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-25
  • 2022-12-14
相关资源
最近更新 更多