2013-02-27 25 views
8

मैं एक समारोह में 3 उल्का संग्रह अद्यतन करना चाहता हूं, लेकिन केवल तभी जब सभी तीन अपडेट सफल होते हैं। अन्यथा मैं वापस रोल करना चाहता हूँ। क्या यह अभी तक करने के लिए एक अच्छा पैटर्न है?उल्का लेनदेन संचालन

धन्यवाद

+0

चेक बाहर [ 'collection.update'] (http : //docs.meteor.com/#update)। इसमें एक वैकल्पिक कॉलबैक है। यदि कोई त्रुटि नहीं है तो आप बाद के अपडेट के साथ आगे बढ़ सकते हैं। – Prashant

+2

@ प्रिशेंट मैं इसकी अनुशंसा नहीं करता क्योंकि दूसरे बाद के चरण में अगर नोड अचानक क्रैश हो जाता है या मॉन्गोड सर्वर तक पहुंच खो देता है तो तीसरी प्रविष्टि को नहीं रखा जाएगा। – Akshat

+0

क्या इसे दुर्घटनाग्रस्त किया जा सकता है? तो मूल रूप से राज्य मूल्यों का उपयोग करने के तरीके भी अनिवार्य है, या? – Prashant

उत्तर

2

उल्का अपने डेटाबेस बैकएंड जो स्पष्ट रूप से लेन-देन का समर्थन नहीं करता के लिए MongoDB उपयोग करता है। लेकिन वहां अभी भी एक पैटर्न है आप इस्तेमाल कर सकते हैं: http://docs.mongodb.org/manual/tutorial/perform-two-phase-commits/

मूल रूप से आप सिर्फ अपने लेनदेन में से प्रत्येक में एक राज्य मूल्य डाल दिया और केवल चिह्नित करें किया जब सब कुछ पूरा हो गया है

+0

और चूंकि 'collect.insert' में कॉलबैक पैरामीटर है, इसलिए आप लेनदेन को अंतिम रूप देने के लिए कॉलबैक का उपयोग कर सकते हैं – Swadq

+0

क्लाइंट एंड पर अगले चरण पर जारी रखने के लिए कॉलबैक का उपयोग करना आवश्यक है, फाइबर सर्वर पर ख्याल रखता है। यदि लेनदेन राज्य विशेषता पैटर्न का उपयोग नहीं किया जाता है तो कॉलबैक इसे लेनदेन नहीं करेगा। यदि किसी भी चरण में किसी त्रुटि के दौरान कोई रुकावट है, तो एक प्रविष्टि दूसरी होगी और दूसरी नहीं होगी। और यदि कॉलबैक में त्रुटि जांच का उपयोग सर्वर क्रैश/पावर विफलता ईवेंट के लिए अभी भी कमजोर है। – Akshat

संबंधित मुद्दे