MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

बवंडर त्रुटि:[त्रुटि 24] बहुत अधिक खुली फ़ाइलें त्रुटि

बहुत सरल, RequestHandler ऑब्जेक्ट प्रत्येक अनुरोध के लिए तत्काल है। जिसका अर्थ है कि कैश्ड ऑब्जेक्ट जिसे आप सहेज रहे हैं वह RequestHandler (उदा. विस्तृत करें) ऑब्जेक्ट पर है।

यदि आप dbmongo(...) फ़ंक्शन में एक साधारण "प्रिंट 'क्रिएटेड!'" जोड़ना चाहते हैं, तो आप देखेंगे कि यह प्रत्येक GET अनुरोध पर बनाया गया है।

आपको जो करना है वह हैंडलर को क्लास ऑब्जेक्ट, या आवश्यकतानुसार "वैश्विक" से जोड़ना है, हालांकि सबसे अच्छा मामला इसे टॉर्नेडो एप्लिकेशन ऑब्जेक्ट पर रखना है।

सरल:

class setup(tornado.web.RequestHandler):
    @classmethod
    def dbmongo(cls):
        if not hasattr(cls, '_dbmongo'):
            cls._dbmongo = apymongo.Connection("127.0.0.1", 27017)
        return cls._dbmongo

दूसरा तरीका यह है कि इसे अपनी फ़ाइल में वैश्विक बना दें:

dbmongo_connection = None
def dbmongo():
    if not dbmongo_connection:
        dbmongo_connection = apymongo.Connection("127.0.0.1", 27017)
    return dbmongo_connection

इन दोनों में एक ही समस्या है जो यह है कि यदि आपके पास बहुत सी कक्षाएं हैं जो डीबी कनेक्शन का उपयोग करना चाहते हैं, तो इसे साझा करना कठिन है। चूंकि डीबी एक साझा इकाई है, आप शायद अपने पूरे आवेदन के लिए एक चाहते हैं।

class MongoMixin(object):
    def mongodb(self):
        if not hasattr(self.application, 'mongodb'):
            self.application.mongodb = apymongo.Connection(self.application.settings.get("mongohost", "127.0.0.1"), 27017)
        return self.application.mongodb

class expand(tornado.web.RequestHandler, MongoMixin):
    def get(self):
       db = self.mongodb()



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB में एक तिथि से मिलीसेकंड प्राप्त करने के 5 तरीके

  2. Mongoimport के साथ MongoDB में JSON फ़ाइल आयात करें

  3. एक नोडज स्क्रिप्ट के भीतर एक मोंगो डेटाबेस में सभी संग्रह सूचीबद्ध करना

  4. उल्का:अनपेक्षित मोंगो निकास कोड 100. पुनरारंभ करना। मोंगो सर्वर प्रारंभ नहीं कर सकता

  5. मोंगोडब कई समूह क्षेत्रों के साथ अलग है