Използвам примерния код от 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: [email protected]
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: [email protected]
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