mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-02 05:56:47 +08:00
fix(scheduler): 恢复缓存清理定时任务注册
commit 4b1df72a 移除了 clear_cache 的 add_job 调用但保留了 _jobs 定义,
导致任务在 UI 中不可见、无法手动执行。现以固定 24 小时间隔重新注册,
不再绑定 META_CACHE_EXPIRE。
This commit is contained in:
@@ -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(
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user