From 5a6a487a97775af626d5cc3aaf860147de7875cf Mon Sep 17 00:00:00 2001 From: "2569718930@qq.com" <2569718930@qq.com> Date: Tue, 12 May 2026 17:39:26 +0800 Subject: [PATCH] =?UTF-8?q?@=20=E4=BF=AE=E5=A4=8D=E6=9C=BA=E5=9C=BA?= =?UTF-8?q?=E9=AB=98=E9=A2=91=E6=8E=A8=E9=80=81=E7=8A=B6=E6=80=81=E4=B8=8E?= =?UTF-8?q?=E4=B8=BB=E5=BE=AA=E7=8E=AF=E5=86=B2=E7=AA=81=EF=BC=9A=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E7=8B=AC=E7=AB=8B=E7=9A=84=E7=8A=B6=E6=80=81=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit _load_airport_state / _save_airport_state 在 SQLite 模式下错误地复用了 _telegram_state_repo,与市场监控主循环共享同一个状态存储, 导致两个循环互相覆盖对方的 last_by_city / last_snapshot_ts 等字段。 改为始终使用独立文件 data/airport_push_state.json 隔离状态。 Constraint: 机场状态与主循环状态必须物理隔离 Scope-risk: 低,仅影响新功能的状态持久化 Tested: ruff check 通过 @ --- src/utils/telegram_push.py | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/src/utils/telegram_push.py b/src/utils/telegram_push.py index 5d13160d..1bcaf0bb 100644 --- a/src/utils/telegram_push.py +++ b/src/utils/telegram_push.py @@ -704,12 +704,6 @@ _AIRPORT_PUSH_STATE_PATH = os.path.join( def _load_airport_state() -> Dict[str, Any]: - try: - from src.database.runtime_state import STATE_STORAGE_SQLITE, get_state_storage_mode - if get_state_storage_mode() == STATE_STORAGE_SQLITE: - return _telegram_state_repo.load_state() - except Exception: - pass path = _AIRPORT_PUSH_STATE_PATH if not os.path.exists(path): return {"last_by_city": {}} @@ -725,13 +719,6 @@ def _load_airport_state() -> Dict[str, Any]: def _save_airport_state(state: Dict[str, Any]) -> None: - try: - from src.database.runtime_state import STATE_STORAGE_SQLITE, get_state_storage_mode - if get_state_storage_mode() == STATE_STORAGE_SQLITE: - _telegram_state_repo.save_state(state) - return - except Exception: - pass path = _AIRPORT_PUSH_STATE_PATH os.makedirs(os.path.dirname(path), exist_ok=True) tmp = f"{path}.tmp"