基于数据库的排队邮件轨道3

时间:2013-03-20 09:20:33

标签: ruby-on-rails-3 email gem message-queue

这可能是一个非常简单和不必要的问题,但我正在努力。

自从rails 3以来,世界似乎已经完成了queued_mails结构。我需要一个写有rails 3的gem来拦截MyMailer的传递方法,将邮件排队到db并要求我们运行rake出队并发送所有邮件。

它也很容易制作,但我不想通过这种努力,因为很难相信没有任何东西可用于导轨3 +。

建议?

1 个答案:

答案 0 :(得分:0)

instead of using gem messages-queue
create simple mailer 

pls check railscasts.com/episodes/171-delayed-job
script/plugin install git://github.com/collectiveidea/delayed_job.git
script/generate delayed_job
rake db:migrate
rake jobs:work

mailings_controller.rb 
mailing = Mailing.find(mailing_id)
mailing.send_later(:deliver)

# or
 Delayed::Job.enqueue(MailingJob.new(params[:id]), -3, 3.days.from_now)

 lib/mailing_job.rb 


class MailingJob < Struct.new(:mailing_id)
   def perform
   mailing = Mailing.find(mailing_id)
   mailing.deliver
 end