diff --git a/src/daemon/ticker.py b/src/daemon/ticker.py index 46908a8..50c4b87 100644 --- a/src/daemon/ticker.py +++ b/src/daemon/ticker.py @@ -490,6 +490,24 @@ class Ticker: return reclaimed + def _check_recent_routing(self, db_path: Path, task_id: str, + action_type: str) -> bool: + """检查最近 5 分钟内是否已 dispatch 过指定类型的路由(防重复)""" + try: + conn = get_connection(db_path) + try: + row = conn.execute( + "SELECT COUNT(*) as cnt FROM routing_decisions " + "WHERE task_id=? AND outcome='dispatched' " + "AND created_at > datetime('now', '-5 minutes')", + (task_id,), + ).fetchone() + return row["cnt"] > 0 if row else False + finally: + conn.close() + except Exception: + return False + # ------------------------------------------------------------------ # 手动 tick(API 端点触发) # ------------------------------------------------------------------