üzerine delayed_job ve aşağıdaki hatayı alıyorum:gerçekleştirmek yanıt vermeyen öğeleri enqueue Can - Heroku
Cannot enqueue items which do not respond to perform
Ben eklenti http://github.com/pedro/delayed_job
kullanıyorum aşağıdaki cron tırmık görevi (cron.rake) kullanıyorum:
:task :cron => :environment do
require 'heroku'
puts "starting the cron job at #{Date.today}"
heroku = Heroku::Client.new(ENV['HEROKU_USER'], ENV['HEROKU_PASS'])
heroku.set_workers(ENV['HEROKU_APP'], 1)
Contact.all.each do |contact|
email = contact.email_today #email_today is a contact method returning email object if <= today
unless contact.email_today == "none"
puts contact.first_name
puts email.days
puts contact.date_entered
puts email.substituted_subject(contact,contact.colleagues)
# create the Contact Email object that gets created and sent
contact_email = ContactEmail.new
contact_email.contact_id = contact.id
contact_email.email_id = email.id
contact_email.subject = email.substituted_subject(contact,contact.colleagues)
contact_email.date_sent = Date.today
contact_email.date_created = Date.today
contact_email.body = email.substituted_message(contact, contact.colleagues)
contact_email.status = "sent"
Delayed::Job.enqueue OutboundMailer.deliver_campaign_email(contact,contact_email)
contact_email.save #now save the record
puts "save contact_email:"
puts contact_email.inspect
end #end unless
end #end do
heroku.set_workers(ENV['HEROKU_APP'], 0)
puts "set heroku workers to 0"
end
Bu kullanıyorum mailler
class OutboundMailer < Postage::Mailer
def campaign_email(contact,email)
subject email.subject
recipients contact.email
from 'Me <[email protected]>'
sent_on Date.today
body :email => email
end
Soru: Neden hatayı alıyorum ve çözmek için ne yapabilirim?
Ayrıca, http://github.com/pedro/delayed_job belgesini okuyun. onun tüm orada –
Merhaba, yapacak - Okumam ama başkasının SO yüzden açıklanan emin değildi olarak bunu yapmak için söyledi .... yaklaşımınız çok nettir, teşekkürler. – Angela