2011-09-20 22 views
5

मैं जानना चाहता हूं कि मुझे इस परियोजना के साथ कैसे जाना चाहिए। मुझे सप्ताह में एक बार लोगों को ईमेल भेजने की जरूरत है। हालांकि इसे ऑटो जेनरेट किया जाना चाहिए और हर हफ्ते एक निश्चित समय पर भेजा जाना चाहिए। कोड के लिए यह कितना मुश्किल है? मुझे यह जानने की ज़रूरत है कि अगर कोई ऐसी किताबें हैं जो मदद की हो सकती हैं या यदि आप में से कोई मुझे निर्देश दे सकता है। इसे रेल पर रूबी का उपयोग करके प्रोग्राम किया जाना है। इसलिए एक वेब सेवा और डेटाबेस एकीकृत है। चीयर्सरेल पर रूबी - किसी विशेष समय पर ईमेल को संदेश भेजने की आवश्यकता है एक सप्ताह में

+5

क्यों इस टैग ईमेल स्पैम है। क्या आप स्पैम उत्पन्न करने की कोशिश कर रहे हैं? –

उत्तर

5

यह जटिल क्यों है?

आपको नौकरी निर्धारित करने की आवश्यकता है। उदाहरण के लिए आप Delayed::Job का उपयोग कर सकते हैं। Delayed::Job आप इस तरह run_at प्रतीक का उपयोग विशिष्ट समय पर एक नौकरी शेड्यूल करने के लिए संभावना प्रदान करता है:

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

अपनी नौकरी एक वर्ग perform विधि लागू करने के लिए किया है। इस विधि के अंदर आप ईमेल भेजने के लिए जिम्मेदार मेलर को कॉल कर सकते हैं। scheduled_at डेटाबेस पर संग्रहीत किया जा सकता है और प्रत्येक बार perform विधि रन अपडेट किया जाता है।

3

पुस्तकों के लिए, Rails Recipes का अध्याय 6 ईमेल के लिए समर्पित है। Advanced Rails Recipes पुस्तक में असिंक्रोनस प्रोसेसिंग और ईमेल पर अध्याय हैं। railscast भी sending email पर समर्पित हैं और custom deamons लिख रहे हैं।

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')