【发布时间】: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