fix(scheduler): address !7 REQUEST_CHANGES
- seed: check completed_key before no_source so same-day last_completed is already_completed (not 10m retry) - scheduler: resolve TaskControl ok/error before logging; ok=False logs task_fail, not task_ok - candidate_cleanup: catch failures, record task, retry ~5m like discover
This commit is contained in:
1 parent
bb18d232f6
commit
1697573d95
7 files changed
+264
-17
No files matched your search
@@ -537,6 +537,36 @@ def test_full_snapshot_skips_ok_rows_including_hourly_refresh():
|
||||
|
||||
|
||||
|
||||
def test_seed_same_day_completed_is_already_completed_not_no_source():
|
||||
"""全站完成后 last_completed==target:应 already_completed,不误判 no_source。"""
|
||||
clock = 1_800_000_000
|
||||
with tempfile.TemporaryDirectory() as tmp:
|
||||
transport = SnapshotTransport({1: view_for(1)})
|
||||
db, repo, service = make_service(tmp, transport, track_fans=())
|
||||
try:
|
||||
add_video(repo, 1)
|
||||
today = "2026-10-31"
|
||||
repo.upsert_snapshot(
|
||||
today, 1,
|
||||
metrics={"view": 10, "like": 1, "coin": 0, "favorite": 0,
|
||||
"share": 0, "reply": 0, "danmaku": 0},
|
||||
ok=True, err=None, captured_at=clock,
|
||||
)
|
||||
# 正常收尾态:last_completed 已推进到当日,且 completed 标记在位
|
||||
repo.kv_set("snapshot:last_completed", today)
|
||||
repo.kv_set(service.completed_key(today), "1")
|
||||
|
||||
summary = service.run_seed_from_last_completed(date=today)
|
||||
assert summary.reason == "already_completed"
|
||||
assert summary.already_completed is True
|
||||
assert summary.completed is True
|
||||
assert summary.reason != "no_source"
|
||||
assert transport.count("/web-interface/view") == 0
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
|
||||
|
||||
def test_seed_from_last_completed_does_not_mark_completed():
|
||||
clock = 1_800_000_000
|
||||
with tempfile.TemporaryDirectory() as tmp:
|
||||
@@ -646,6 +676,7 @@ def main():
|
||||
test_backup_failure_retries_without_api()
|
||||
test_run_recent_videos_refreshes_without_completion_markers()
|
||||
test_full_snapshot_skips_ok_rows_including_hourly_refresh()
|
||||
test_seed_same_day_completed_is_already_completed_not_no_source()
|
||||
test_seed_from_last_completed_does_not_mark_completed()
|
||||
test_seeded_day_skips_without_force_and_seals_with_force()
|
||||
print("OK: 每日快照、断点续跑、失败占位与粉丝采集测试全部通过")
|
||||
|
||||
Reference in new issue
Block a user