2011-09-20 69 views
5

我想知道我應該如何處理這個項目。我需要每週向人們發送一次電子郵件。但是,這必須每週在特定時間自動生成併發送。編碼有多難?我需要知道,如果有任何書籍可以幫助您,或者您有任何可以指導我的書籍。它必須使用軌道上的紅寶石進行編程。因此集成了一個Web服務和數據庫。歡呼聲Ruby on Rails - 需要每週在特定時間向郵件發送郵件

+5

這是爲什麼標籤的電子郵件垃圾郵件。你想生成垃圾郵件嗎? –

回答

5

這是爲什麼這麼複雜?

您只需要安排一項工作。例如,您可以使用Delayed::JobDelayed::Job給你的可能使用run_at符號這樣的安排在特定時間的工作:

Delayed::Job.enqueue(SendEmailJob.new(...), :run_at => scheduled_at)  

你的任務是必須實現perform方法的類。在這個方法裏面,你可以打電話給負責發送電子郵件的郵件程序。 scheduled_at可以存儲在數據庫中,每次運行方法都會更新。

3

您可以使用像whenever這樣的寶石安排重複執行的任務。

every :sunday, :at => '12pm' do 
    runner "User.send_emails"  
end 
1

也許你可以試試clockwork

require 'clockwork' 
include Clockwork 

handler do |job| 
    puts "Running #{job}" 
end 

every(10.seconds, 'frequent.job') 
every(3.minutes, 'less.frequent.job') 
every(1.hour, 'hourly.job') 

every(1.day, 'midnight.job', :at => '00:00') 
相關問題