2012-01-30 7 views
5

भारी डीबी लेनदेन के कारण, मेरे आवेदन में Export to Excel लिंक पर क्लिक करते समय मुझे टाइम आउट त्रुटि का कोई समस्या है। मैं इस कार्यक्षमता को पृष्ठभूमि में बदलना चाहता हूं ताकि उपयोगकर्ता पृष्ठभूमि प्रक्रिया के दौरान आगे बढ़ने में सक्षम हो। मैं चाहता हूं कि जब उपयोगकर्ता Export to Excel लिंक पृष्ठभूमि/नई थ्रेड प्रक्रिया रन पर क्लिक करता है और फ़ाइल को डाउनलोड करने के लिए उपयोगकर्ता को एक ईमेल भेजा जाता है। मैं जानना चाहता हूं कि इसे प्राप्त करने का सबसे अच्छा तरीका कौन सा नया धागा या पृष्ठभूमि प्रक्रिया बनाना है?रेल नई धागा या पृष्ठभूमि प्रक्रिया बनाना

धन्यवाद अग्रिम

उत्तर

3

में आप https://github.com/defunkt/resque या https://github.com/collectiveidea/delayed_job उपयोग कर सकते हैं।

तुम भी देख सकते हैं:

http://railscasts.com/episodes/271-resque

http://railscasts.com/episodes/171-delayed-job-revised

http://railscasts.com/episodes/171-delayed-job (वर्ष से ऊपर लेकिन मुफ्त में से एक - लेकिन यह एक सदस्यता खरीदने के लिए लायक है)

+0

भी आप बचाव के साथ 'भगवान' का उपयोग कर सकते हैं –

0

के तीन प्रकार के होते हैं संदेश कतार,

  1. कोई कतार नहीं - पृष्ठभूमि कार्य के लिए एक नया धागा/प्रक्रिया ट्रिगर की जाएगी, उदाहरण के लिए: spawn
  2. डेटाबेस संचालित - संबंधित कार्य डेटाबेस में एक तालिका में संग्रहीत किया जाएगा और इसे पूरा होने पर स्वचालित रूप से हटा दिया जाएगा, उदाहरण के लिए: backgroundrb, देरी हुई नौकरी
  3. संदेश कतारों - स्मृति में संग्रहीत नौकरियों, जैसे: स्टार्लिंग

मैं resque उपयोग नहीं किया है, लेकिन सुना है कि यह थोड़ा कॉन्फ़िगर करने के लिए जटिल है। पृष्ठभूमि में चल रहे कार्यों के अलावा, यदि आप नियमित अंतराल पर कुछ दोहराव वाले कार्य को चलाने के लिए चाहते हैं, तो आप पृष्ठभूमि के लिए जा सकते हैं। अन्यथा देरी नौकरी सही विकल्प होगी।