2010-06-21 14 views
8

मेरे पास एक Django ऐप है जो स्टोरेज के लिए MySQL और InnoDB इंजन का उपयोग करता है। कुछ कारणों से, पूछताछ पूरी होने के बावजूद, Django कभी-कभी जगहों पर ताले छोड़ देता है। (मैं उन्हें इनोटोप के साथ देख सकता हूं)।django mysql में पीछे ताले क्यों छोड़ रहा है?

केवल लेन-देन से निपटने सामान है कि मैं अपने कोड में क्या है कि मैं अपने को बचाने() पद्धतियों जहाँ मैं मल्टी-टेबल विरासत के साथ काम कर रहा हूँ में से कुछ के लिए निर्दिष्ट django.db.transaction.commit_on_success है।

मैं अपाचे सर्वर को पुनः आरंभ करते हैं, तो ताले चले जाओ।

किसी को कुछ इस तरह देखा है? क्या मैंने कुछ एंटी-पैटर्न में लिखा होगा जो इसका कारण बनेंगे?

उत्तर

1

एकमात्र बार जब मैं इसे पूरा करने में कामयाब रहा, तो Django में "निर्धारित" कार्यों को स्थापित करके अनुरोध/विचारों से संबंधित नहीं थे। डिफॉल्ट ऑटो-प्रतिबद्ध लेनदेन हैंडलिंग सिस्टम केवल लेन-देन करता है जब अनुरोध/प्रतिक्रिया जोड़ी पूरी हो जाती है और अंतिम उपयोगकर्ता को वापस भेज दी जाती है, इसलिए क्रोन-एस्क्यू जॉब्स बनाना जो अनुरोध के बिना चलाया जाता है, उस तंत्र को छोड़ देता है।

अन्यथा यह लॉक जारी करने में असफल होने में आम तौर पर मुश्किल है। आप सुनिश्चित हैं कि कोड के बेहद लंबे समय से चलने वाले ब्लॉक नहीं हैं (शायद बाहरी सेवा पर भरोसा करते हैं जो समय-समय पर या कुछ प्रकार का है) चीजों को बांधना?

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