栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

龙卷风“错误:[Errno 24]打开的文件太多”错误

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

龙卷风“错误:[Errno 24]打开的文件太多”错误

很简单,为每个请求实例化RequestHandler对象。这意味着您要保存的缓存对象位于RequestHandler(例如,expand)对象上。

如果要向dbmongo(…)函数添加一个简单的“ print’CREATED!’”,您会看到它是在每个GET请求中创建的。

您需要做的是将处理程序附加到类对象,或者根据需要附加“全局”,尽管最好的情况是将其放在Tornado Application对象上。

简单:

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 = Nonedef 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.mongodbclass expand(tornado.web.RequestHandler, MongoMixin):    def get(self):       db = self.mongodb()


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/376401.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号