def __new__(cls, name='template1'): with cls._lock: now = datetime.now() databases = cls._databases[os.getpid()] for database in list(databases.values()): if ((now - database._last_use).total_seconds() > _timeout and database.name != name and not database._connpool._used): database.close() if name in databases: inst = databases[name] else: if name == 'template1': minconn = 0 else: minconn = _minconn inst = DatabaseInterface.__new__(cls, name=name) logger.info('connect to "%s"', name) inst._connpool = ThreadedConnectionPool( minconn, _maxconn, **cls._connection_params(name), cursor_factory=LoggingCursor) databases[name] = inst inst._last_use = datetime.now() return inst
def __new__(cls, name=_default_name): with cls._lock: now = datetime.now() databases = cls._databases[os.getpid()] for database in list(databases.values()): if ((now - database._last_use).total_seconds() > _timeout and database.name != name and not database._connpool._used): database.close() if name in databases: inst = databases[name] else: if name == _default_name: minconn = 0 else: minconn = _minconn inst = DatabaseInterface.__new__(cls, name=name) try: inst._connpool = ThreadedConnectionPool( minconn, _maxconn, **cls._connection_params(name), cursor_factory=LoggingCursor) logger.info('connected to "%s"', name) except Exception: logger.error('connection to "%s" failed', name, exc_info=True) raise else: logger.info('connection to "%s" succeeded', name) databases[name] = inst inst._last_use = datetime.now() return inst
def __new__(cls, name='template1'): with cls._lock: if name in cls._databases: return cls._databases[name] inst = DatabaseInterface.__new__(cls, name=name) cls._databases[name] = inst logger.info('connect to "%s"', name) minconn = config.getint('database', 'minconn', default=1) maxconn = config.getint('database', 'maxconn', default=64) inst._connpool = ThreadedConnectionPool( minconn, maxconn, cls.dsn(name), cursor_factory=LoggingCursor) return inst
def __new__(cls, name=_default_name): if (name == ':memory:' and getattr(cls._local, 'memory_database', None)): return cls._local.memory_database return DatabaseInterface.__new__(cls, name=name)
def __new__(cls, name='template1'): if name in cls._databases: return cls._databases[name] return DatabaseInterface.__new__(cls, name=name)
def __new__(cls, database_name='template1'): if database_name in cls._databases: return cls._databases[database_name] return DatabaseInterface.__new__(cls, database_name=database_name)
def __new__(cls, database_name="template1"): if database_name in cls._databases: return cls._databases[database_name] return DatabaseInterface.__new__(cls, database_name=database_name)
def __new__(cls, database_name=':memory:'): if (database_name == ':memory:' and hasattr(cls._local, 'memory_database') and cls._local.memory_database): return cls._local.memory_database return DatabaseInterface.__new__(cls, database_name=database_name)
def __new__(cls, database_name=':memory:'): if (database_name == ':memory:' and getattr(cls._local, 'memory_database', None)): return cls._local.memory_database return DatabaseInterface.__new__(cls, database_name=database_name)
def __new__(cls, name=':memory:'): if (name == ':memory:' and getattr(cls._local, 'memory_database', None)): return cls._local.memory_database return DatabaseInterface.__new__(cls, name=name)