1.0 KiB
1.0 KiB
2026-06-08 — sync_logs 30 天自动清理
摘要
primary worker 每日删除 started_at 超过 30 天的 sync_logs 记录(启动后立即执行首轮),对齐 design-standards.md 保留策略。
动机
推送历史仅存 MySQL、无 TTL,长期运行后表体积持续增长,影响列表查询与备份。
涉及文件
server/infrastructure/database/sync_log_repo.py—purge_older_than、常量SYNC_LOG_RETENTION_DAYS=30server/background/sync_log_purge.py— 24h 周期循环server/main.py— primary worker 注册后台任务tests/test_sync_log_purge.py
迁移 / 重启
- 无 schema 变更
- 需重启 API
行为
| 项 | 值 |
|---|---|
| 保留窗口 | 30 天(started_at) |
| 执行频率 | 启动后首轮 + 每 24h |
| 删除方式 | 每批最多 1000 行,循环至无匹配 |
验证
pytest tests/test_sync_log_purge.py -q
bash scripts/local_verify.sh
# 可选:INSERT 一条 started_at=31天前 的 sync_log,重启 API 后确认已删除