From 31e5a61f4a982c5fbe5d63a09466b06f31d0c587 Mon Sep 17 00:00:00 2001 From: linlin Date: Fri, 13 Mar 2026 17:14:08 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=A2=9E=E5=BC=BA=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=97=B6=E5=90=8C=E6=AD=A5=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E7=9A=84=E5=81=9C=E6=AD=A2=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - close() 方法中先设置停止标志 - 强制设置 _sync_in_progress = False - 确保取消正在运行的自动同步任务 --- sync_service.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/sync_service.py b/sync_service.py index 3ef1284..73f8a09 100644 --- a/sync_service.py +++ b/sync_service.py @@ -556,9 +556,24 @@ class SyncService: def close(self): """Close connections for this data source""" - self.stop_auto_sync() + # 先设置停止标志,防止新同步开始 + self._running = False + self._sync_in_progress = False + + # 取消自动同步任务 + if hasattr(self, '_auto_sync_task') and self._auto_sync_task is not None and not self._auto_sync_task.done(): + try: + self._auto_sync_task.cancel() + except Exception as e: + logger.error(f"Error cancelling auto sync task: {e}") + + # 停止当前同步 + self._sync_in_progress = False + if hasattr(self.syncer, 'close'): self.syncer.close() + + logger.info(f"Closed all connections for {self.source_name}") class SyncServiceManager: