मैंने एक विकेट + हाइबरनेट + स्प्रिंग वेब एप्लिकेशन स्थापित किया है जिसमें कुछ डेटा एकत्र करना शामिल है (कुछ फाइलें जेनरेट और लौटाई गई हैं), इसे डेटाबेस में संग्रहीत करना, कुछ छवियां बनाना और यह सब प्रदर्शित करना शामिल है एक वेबपेज पर।विकेट: लंबे समय तक चलने वाले कार्यों को कैसे संभालना है
यह सब छोटे रनों के लिए ठीक काम करता है, लेकिन कभी-कभी डेटा एकत्र करना (जिसमें कुछ रिमोट नंबर क्रंचिंग शामिल है) बहुत लंबा (20+ मिनट) और समय निकालता है। मैंने दो दृष्टिकोणों का उपयोग करके इसे हल करने का प्रयास किया है, लेकिन उनमें से दोनों कुछ समस्याएं दिखाते हैं।
पहला दृष्टिकोण AjaxLazyLoadPanel एस का उपयोग कर रहा था और getLazyLoadComponent के भीतर बस सबकुछ कर रहा था। यह छोटे रनों के लिए ठीक काम करता था, लेकिन 20+ मिनट के लिए LazyLoadComponents टाइमआउट के कारण लोड नहीं होगा (अच्छा oxymoron)।
दूसरा दृष्टिकोण एक जोड़ा गया AjaxSelfUpdatingTimerBehavior के साथ एक इंटरमीडिएट फ्रैगमेंट बनाने में शामिल है जिसमें 10 सेकंड तक सेट की अवधि है, जो संख्या क्रंचिंग में बनाई गई फ़ाइलों के लिए मतदान किया जाता है। ऐसा लगता है कि कार्य बिना किसी समस्या के पृष्ठभूमि में चलते हैं, लेकिन जब डेटाबेस में लौटाए गए डेटा को संग्रहीत करने की आवश्यकता होती है तो विफल हो जाती है। मैं व्यू पैटर्न में ओपन सत्र का उपयोग कर रहा हूं, लेकिन शायद 20 मिनट के बाद डेटा स्टोर करने का प्रयास करते समय यह विफल हो जाता है ?? (समाधान इसे हल करने में झूठ बोल सकता है ..)।
ऊपर समस्याओं मैं अब इन लंबे चल रहे कार्यों को संभालने के लिए वैकल्पिक तरीकों पर ऊपर पढ़ रहा हूँ और के कारणभर में आया था:
मैं अब सोच रहा हूँ यदि इनमें से कोई भी टाइम-आउट समस्याओं को हल करने के लिए बेहतर हो सकता है, तो मैं दोनों कार्यों को चलाने और डेटाबेस में डेटा संग्रहीत करने में सक्षम हूं, या यदि किसी के पास कोई अन्य समाधान है जो इस स्थिति में मदद कर सकता है।
मैं वास्तव में जानना चाहता हूं कि एक नया दृष्टिकोण व्यवहार्य है या नहीं, इससे पहले कि मैं किसी अन्य दिन को लागू करने के लिए काम न करें जो सब कुछ लागू नहीं कर सकता है।
सादर,
टिम
धन्यवाद, ऐसा कुछ है जो मैंने प्रश्न पोस्ट करने के बाद भी सोचा था (एक प्रश्न तैयार करना इस तरह से रबर डकिंग जैसा है)। मुझे अभी भी यह पता लगाना होगा कि क्या यह वास्तव में समस्या को हल करेगा, क्योंकि लॉग टाइम आउट सत्रों के बारे में कुछ भी रिकॉर्ड नहीं करते हैं .. डेटाबेस में परिणामों की अनुपस्थिति अपरिपक्व है। यदि मुझे और पता चलता है तो अपडेट हो जाएगा। – Tim
इस दृष्टिकोण के लिए जा रहा है और इसके बाद से कोई समस्या नहीं है .. धन्यवाद! – Tim
टिम सुनने के लिए अच्छा है! – Matt