fix(HEL-386): 清理任务按 ISO 截止时间删除 job_runs/src_calls

YYYYMMDD 与 ISO 字符串比较会把同年保留期内记录全部误删。

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
总工
2026-09-02 12:26:09 +08:00
co-authored by Cursor multica-agent
parent 3498dd7a4b
commit 031eefab4d
2 changed files with 48 additions and 5 deletions
+4 -2
View File
@@ -3,6 +3,7 @@ from __future__ import annotations
import json
import time
from collections.abc import Callable
from datetime import timedelta
from typing import Any
from datahub.adapters.base import AdapterError
@@ -342,8 +343,9 @@ class Pipeline:
def cleanup(self) -> dict[str, int]:
staging_days = int(self.settings.quality.get("staging_retain_days") or 14)
job_days = int(self.settings.quality.get("job_run_retain_days") or 90)
cutoff_staging = add_days(yyyymmdd(self.clock()), -staging_days)
cutoff_jobs = add_days(yyyymmdd(self.clock()), -job_days)
now = now_shanghai(self.clock())
cutoff_staging = add_days(yyyymmdd(now), -staging_days)
cutoff_jobs = isoformat(now - timedelta(days=job_days))
deleted = 0
with self.db.write() as connection:
for dataset, (_eod, staging) in DATASET_TABLES.items():