मैं एक निम्न सेटअप:Django बचाने() autocommit लेनदेन के साथ व्यवहार
- कई डाटा प्रोसेसिंग कार्यकर्ताओं http द्वारा Django दृश्य
get_conf()
से विन्यास मिलता है। - विन्यास का उपयोग कर MySQL/InnoDB बैकएंड
- विन्यास मॉडल Django मॉडल में संग्रहित है
save()
विधि है जो बताता है कि श्रमिकों विन्यास
फिर से लोड करने मैं देखा है कि कभी कभी श्रमिकों को सही ढंग से बदली हुई विन्यास प्राप्त नहीं होता है अधिरोहित गया है। विशेष रूप से, जब conf reload समय सामान्य से छोटा था, श्रमिकों को get_conf()
से "पुराना" कॉन्फ़िगरेशन मिला (सबसे हालिया परिवर्तन गुम है)। Django में प्रयुक्त लेनदेन मॉडल डिफ़ॉल्ट autocommit है।
मैं निम्नलिखित संभव परिदृश्य है कि व्यवहार का कारण बन सकता के साथ आए हैं:
- नई विन्यास
save()
रिटर्न सहेजा जाता है लेकिन MySQL/InnoDB अभी भी (ऑटो) संसाधित कर रहा है- श्रमिक प्रतिबद्ध हटा दिया गया और
- MySQL (ऑटो) खत्म
क्या उपर्युक्त परिदृश्य में चरण 2 संभव है? यही है, क्या django मॉडल save()
डेटा को वास्तव में डीबी में किया जा सकता है यदि ऑटोोकॉमिट लेनदेन विधि का उपयोग किया जा रहा है? या, एक परत नीचे जाने के लिए, क्या पूरा हो जाने से पहले MySQL autocommitting INSERT
या UPDATE
ऑपरेशन खत्म हो सकता है (अपडेट/अन्य लेनदेन के लिए दृश्य डालें)?
क्या आप अपने इंजन के लिए InnoDB या MyISAM का उपयोग कर रहे हैं? – FlipperPA
इनो डीबी। डिफ़ॉल्ट विन्यास के साथ डीबी अमेज़ॅन आरडीएस पर चल रहा है।कुछ बड़ी टेबल हैं, लेकिन इस समस्या से संबंधित तालिका छोटी है (128kb या तो के क्रम में) – jhonkola
क्या आप इस मामले के लिए ऑटोोकॉमिट बंद कर सकते हैं? – sobolevn