Files
Nexus/docs/changelog/2026-06-08-sync-log-purge.md
2026-07-08 22:31:31 +08:00

1.0 KiB
Raw Permalink Blame History

2026-06-08 — sync_logs 30 天自动清理

摘要

primary worker 每日删除 started_at 超过 30 天的 sync_logs 记录(启动后立即执行首轮),对齐 design-standards.md 保留策略。

动机

推送历史仅存 MySQL、无 TTL,长期运行后表体积持续增长,影响列表查询与备份。

涉及文件

  • server/infrastructure/database/sync_log_repo.pypurge_older_than、常量 SYNC_LOG_RETENTION_DAYS=30
  • server/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 后确认已删除