소스 검색

use autoconnect and stop using the mixin

perf3ct 10 달 전
부모
커밋
981866eb93
1개의 변경된 파일19개의 추가작업 그리고 19개의 파일을 삭제
  1. 19 19
      backend/apps/webui/internal/wrappers.py

+ 19 - 19
backend/apps/webui/internal/wrappers.py

@@ -1,8 +1,8 @@
 from contextvars import ContextVar
 from contextvars import ContextVar
 from peewee import *
 from peewee import *
 from playhouse.db_url import connect
 from playhouse.db_url import connect
-from playhouse.pool import PooledPostgresqlDatabase
-from playhouse.shortcuts import ReconnectMixin
+from playhouse.pool import PooledPostgresqlExtDatabase
+from playhouse.pool import PooledSqliteDatabase
 
 
 db_state_default = {"closed": None, "conn": None, "ctx": None, "transactions": None}
 db_state_default = {"closed": None, "conn": None, "ctx": None, "transactions": None}
 db_state = ContextVar("db_state", default=db_state_default.copy())
 db_state = ContextVar("db_state", default=db_state_default.copy())
@@ -19,26 +19,26 @@ class PeeweeConnectionState(object):
         value = self._state.get()[name]
         value = self._state.get()[name]
         return value
         return value
 
 
-class ReconnectingPostgresqlDatabase(ReconnectMixin, PostgresqlDatabase):
-    pass
-
-class ReconnectingPooledPostgresqlDatabase(ReconnectMixin, PooledPostgresqlDatabase):
-    pass
-
-class ReconnectingSqliteDatabase(ReconnectMixin, SqliteDatabase):
-    pass
-
-
 def register_connection(db_url):
 def register_connection(db_url):
-    # Connect using the playhouse.db_url module, which supports multiple 
-    # database types, then wrap the connection in a ReconnectMixin to handle dropped connections
     db = connect(db_url)
     db = connect(db_url)
     if isinstance(db, PostgresqlDatabase):
     if isinstance(db, PostgresqlDatabase):
-        db = ReconnectingPostgresqlDatabase(db.database, **db.connect_params)
-    elif isinstance(db, PooledPostgresqlDatabase):
-        db = ReconnectingPooledPostgresqlDatabase(db.database, **db.connect_params)
+        db = PooledPostgresqlExtDatabase(
+            db.database,
+            max_connections=8,
+            stale_timeout=300,
+            timeout=None,
+            autoconnect=True,
+            **db.connect_params
+        )
     elif isinstance(db, SqliteDatabase):
     elif isinstance(db, SqliteDatabase):
-        db = ReconnectingSqliteDatabase(db.database, **db.connect_params)
+        db = PooledSqliteDatabase(
+            db.database,
+            max_connections=8,
+            stale_timeout=300,
+            timeout=None,
+            autoconnect=True,
+            **db.connect_params
+        )
     else:
     else:
         raise ValueError('Unsupported database connection')
         raise ValueError('Unsupported database connection')
-    return db
+    return db