PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

थ्रेड में Django ORM का उपयोग करना और BoundedSemaphore का उपयोग करके बहुत से क्लाइंट अपवादों से बचना

Django का ORM थ्रेड-स्थानीय चर में डेटाबेस कनेक्शन प्रबंधित करता है। तो ओआरएम तक पहुंचने वाला प्रत्येक अलग धागा अपना खुद का कनेक्शन बनाएगा। आप देख सकते हैं कि django/db/backends/__init__.py की पहली कुछ पंक्तियों में ।

यदि आप किए गए डेटाबेस कनेक्शन की संख्या को सीमित करना चाहते हैं, तो आपको वास्तव में ORM तक पहुँचने वाले विभिन्न थ्रेड्स की संख्या को सीमित करना होगा। एक समाधान एक ऐसी सेवा को लागू करना हो सकता है जो ओआरएम अनुरोधों को समर्पित ओआरएम धागे के पूल में सौंपती है। अनुरोधों और उनके परिणामों को अन्य थ्रेड्स से प्रेषित करने के लिए आपको किसी प्रकार के संदेश पासिंग तंत्र को लागू करना होगा। चूंकि यह एक सामान्य निर्माता/उपभोक्ता समस्या है, थ्रेडिंग के बारे में पायथन दस्तावेज़ों को कुछ संकेत देना चाहिए कि इसे कैसे प्राप्त किया जाए।

संपादित करें: मैंने अभी "django कनेक्शन पूलिंग" के लिए गुगल किया है। ऐसे कई लोग हैं जो शिकायत करते हैं कि Django उचित कनेक्शन पूल प्रदान नहीं करता है। उनमें से कुछ एक अलग पूलिंग पैकेज को एकीकृत करने में कामयाब रहे। PostgreSQL के लिए, मैं pgpool मिडलवेयर पर एक नज़र डालूंगा।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पोस्टग्रेएसक्यूएल में एंटिटी फ्रेमवर्क (सी #) के साथ सीरियल अनुक्रम को ओवरराइड करें

  2. पोस्टग्रेएसक्यूएल pg_trgm धीमे का उपयोग करके फिर पूर्ण स्कैन

  3. प्राथमिक कुंजी ऑटोइनक्रिकमेंट के लिए Django और PostgreSQL अनुक्रम

  4. हाइबरनेट अनुक्रम उत्पन्न नहीं हुआ

  5. pg_dump संस्करण बेमेल त्रुटियों को कैसे ठीक करें?