From f689cbc203e3d6542f1701fb8c91e27198d46e8e Mon Sep 17 00:00:00 2001 From: junjun Date: Tue, 29 Jul 2025 11:15:21 +0800 Subject: [PATCH] feat: timeout --- backend/apps/datasource/crud/datasource.py | 2 +- backend/apps/db/db.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/backend/apps/datasource/crud/datasource.py b/backend/apps/datasource/crud/datasource.py index 52381c6f..a73a22bf 100644 --- a/backend/apps/datasource/crud/datasource.py +++ b/backend/apps/datasource/crud/datasource.py @@ -41,7 +41,7 @@ def get_ds(session: SessionDep, id: int): def check_status(session: SessionDep, ds: CoreDatasource, is_raise: bool = False): - conn = get_engine(ds) + conn = get_engine(ds, 5) try: with conn.connect() as connection: SQLBotLogUtil.info("success") diff --git a/backend/apps/db/db.py b/backend/apps/db/db.py index b051d787..83be9c75 100644 --- a/backend/apps/db/db.py +++ b/backend/apps/db/db.py @@ -52,10 +52,10 @@ def get_uri_from_config(type: str, conf: DatasourceConf) -> str: return db_url -def get_engine(ds: CoreDatasource) -> Engine: +def get_engine(ds: CoreDatasource, timeout: int = 30) -> Engine: conf = DatasourceConf(**json.loads(aes_decrypt(ds.configuration))) if ds.type != "excel" else get_engine_config() if conf.timeout is None: - conf.timeout = 30 + conf.timeout = timeout if ds.type == "pg" and (conf.dbSchema is not None and conf.dbSchema != ""): engine = create_engine(get_uri(ds), connect_args={"options": f"-c search_path={urllib.parse.quote(conf.dbSchema)}",