मैं एक्सप्रेस, और नोड-माइस्क्ल ड्राइवर का उपयोग करके node.js पर एक ऐप बना रहा हूं। मेरे ऐप में कुछ मामले हैं जब मुझे डेटाबेस प्रविष्टियों/अपडेट की एक श्रृंखला बनाने की आवश्यकता है। मैं उन्हें एक लेनदेन में चाहता हूं कि यदि दूसरा या तीसरा व्यक्ति विफल रहता है, तो पिछले आवेषण पूरी तरह से वापस लुढ़क जाते हैं।नोड.जेएस + माईएसक्यूएल - लेनदेन को संभालना
वर्तमान में, जिस तरह से मैं यह कर रहा हूं वह किसी प्रकार का मिडलवेयर है जो अनुरोध होने पर START TRANSACTION
करता है। अनुरोध की प्रसंस्करण के दौरान, अगर कोई त्रुटि फेंक दी जाती है, तो मुझे यह त्रुटि मिलती है, और ROLLBACK
करें। यदि कोई त्रुटि नहीं होती है, तो ब्राउज़र पर प्रतिक्रिया भेजने से पहले मैं COMMIT
करता हूं।
हालांकि, अब मुझे चिंता है कि यह तब तक काम नहीं करेगा जब एकाधिक उपयोगकर्ता एक साथ एप्लिकेशन तक पहुंच सकें, क्योंकि MySQL एक मजबूर प्रतिबद्धता करता है यदि कोई अन्य अनुरोध START TRANSACTION
के साथ अपना लेनदेन शुरू करने का प्रयास करता है! मैं वर्तमान में नोड के केवल एक उदाहरण का उपयोग कर रहा हूं, और सभी अनुरोधों के लिए एक एकल MySQL कनेक्शन का उपयोग कर रहा हूं।
क्या कोई मेरी सलाह दे सकता है कि मेरी चिंताओं वैध हैं, और लेनदेन के समर्थन में मुझे कैसे प्राप्त करना चाहिए?
यदि आपके पास विकल्प है तो इसके बजाय सोफे/रेडिस/मोंगो का उपयोग करने के लिए उपयुक्त हो सकता है क्योंकि नोड के साथ अधिक आसानी से उपयोग किया जाता है। यदि आपके पास पहले से ही एक MYSQL डेटाबेस है जिसका उपयोग जारी है। – Raynos
@ रेनोस AFAIK MongoDb के लेनदेन के लिए कोई समर्थन नहीं है ... – renatoargh