我正在使用delayed_job 中的代码示例发送时事通讯:
class NewsletterJob < Struct.new(:subscribers)
def perform
subscribers.each { |subscriber| NewsletterMailer.newsletter(subscriber.id) }
end
end
然后我在这里设置工作:
Delayed::Job.enqueue NewsletterJob.new(Subscriber.find(:all))
如果我不使用延迟工作,邮件就会被发送,所以它可以工作。如果我直接使用延迟作业,邮件将按如下方式发送:
NewsletterMailer.delay.newsletter(subscriber)
在数据库的作业表中,以下是 yaml:
--- !ruby/struct:NewsletterJob
subscribers:
- !ruby/ActiveRecord:Subscriber
attributes:
id: '54'
email: someemail@gmail.com
created_at: '2013-08-09 04:44:51.113258'
updated_at: '2013-08-09 08:26:05.934564'
token: quVI0dhxyyentB7TJ1IO6w
- !ruby/ActiveRecord:Subscriber
attributes:
id: '56'
email: another@gmail.com
created_at: '2013-08-11 09:29:22.000829'
updated_at: '2013-08-11 09:29:22.000829'
token: a-n-yijwi38_HvGFSmetmA
我使用 MockSMTP 在本地机器上接收电子邮件。
出于某种原因,即使作品似乎正在处理工作,电子邮件也没有被发送。
yaml有什么问题吗?
任何帮助表示赞赏我是 NOOB