fix(scheduler): 恢复缓存清理定时任务注册

commit 4b1df72a 移除了 clear_cache 的 add_job 调用但保留了 _jobs 定义,
导致任务在 UI 中不可见、无法手动执行。现以固定 24 小时间隔重新注册,
不再绑定 META_CACHE_EXPIRE。
This commit is contained in:
jxxghp
2026-08-17 13:33:32 +08:00
parent 48d85b798b
commit 252f0f986f
2 changed files with 18 additions and 3 deletions
+10
View File
@@ -682,6 +682,16 @@ class Scheduler(ConfigReloadMixin, metaclass=SingletonClass):
kwargs={"job_id": "scheduler_job"},
)
# 缓存清理服务
self._scheduler.add_job(
self.start,
"interval",
id="clear_cache",
name="缓存清理",
hours=24,
kwargs={"job_id": "clear_cache"},
)
# 数据表清理服务,每天凌晨执行一次
if settings.DATA_CLEANUP_ENABLE:
self._scheduler.add_job(
+8 -3
View File
@@ -45,8 +45,8 @@ def test_scheduler_initializer_starts_background_jobs(monkeypatch):
scheduler.init.assert_called_once_with()
def test_meta_cache_expire_does_not_schedule_bulk_cache_clear(monkeypatch):
"""单条缓存 TTL 不应再被用于注册整批缓存清理任务。"""
def test_meta_cache_expire_does_not_control_cache_clear_interval(monkeypatch):
"""缓存清理任务应使用固定间隔,不受 META_CACHE_EXPIRE 控制"""
background_scheduler = _BackgroundSchedulerStub()
generic_chain = Mock()
for name in [
@@ -98,6 +98,11 @@ def test_meta_cache_expire_does_not_schedule_bulk_cache_clear(monkeypatch):
scheduler.init()
scheduled_job_ids = {job["id"] for job in background_scheduler.jobs}
assert "clear_cache" not in scheduled_job_ids
assert "clear_cache" in scheduled_job_ids
assert "clear_cache" in scheduler._jobs
# 缓存清理使用固定 24 小时间隔,不受 META_CACHE_EXPIRE 控制
clear_cache_job = next(
job for job in background_scheduler.jobs if job["id"] == "clear_cache"
)
assert clear_cache_job["hours"] == 24
assert background_scheduler.started is True