2013-03-20 23 views
0

這可能是一個非常簡單和不必要的問題,但我很掙扎。基於數據庫的排隊郵件軌3

自從rails3以來,世界似乎已經用queued_mails結構完成了。我需要一個編寫rails 3的gem來攔截MyMailer的交付方法,將郵件排入數據庫,並要求我們運行一個rake來排隊併發送所有郵件。

它也很容易做到,但我不想通過努力,因爲它很難相信沒有任何鐵軌3+。

對此提出建議?

回答

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