流水线整体前移1.5h,凌晨5点前全部就绪

01:00 search → 01:10 trends → 01:30 collect
→ 02:00 create → 03:00 review
→ 05:00 optimize_sources → 06:00 metrics

各间隔: 10min/20min/30min/60min/2h/1h
采集到创作30min缓冲足够(采集≈5-15min)
This commit is contained in:
Yuzhiran Dev
2026-05-21 10:04:41 +08:00
parent 56293a52a2
commit 5037d5d0ed
+12 -12
View File
@@ -25,7 +25,7 @@ class TaskScheduler:
logger.warning("Scheduler already started") logger.warning("Scheduler already started")
return return
# 使用 CronTrigger 设置每日固定时间点 # 使用 CronTrigger 设置每日固定时间点
# 顺序: 搜索缓存(01:00)→采集(01:30)→趋势(03:00)→生成(03:30)→审查(04:30)→源优化(05:00)→指标(06:00) # 顺序: 搜索缓存(01:00)→趋势(01:10)→采集(01:30)→创作(02:00)→审查(03:00)→源优化(05:00)→指标(06:00)
self.scheduler.add_job( self.scheduler.add_job(
self._run_refresh_search_cache, self._run_refresh_search_cache,
CronTrigger(hour=1, minute=0), CronTrigger(hour=1, minute=0),
@@ -34,22 +34,22 @@ class TaskScheduler:
max_instances=1, max_instances=1,
coalesce=True coalesce=True
) )
self.scheduler.add_job(
self._run_fetch_trends,
CronTrigger(hour=1, minute=10),
id='scheduled_fetch_trends',
replace_existing=True,
max_instances=1,
coalesce=True
)
self.scheduler.add_job( self.scheduler.add_job(
self._run_collect, self._run_collect,
CronTrigger(hour=1, minute=30), CronTrigger(hour=1, minute=30),
id='scheduled_collect', id='scheduled_collect',
) )
self.scheduler.add_job(
self._run_fetch_trends,
CronTrigger(hour=3, minute=0),
id='scheduled_fetch_trends',
replace_existing=True,
max_instances=1,
coalesce=True
)
self.scheduler.add_job( self.scheduler.add_job(
self._run_generate, self._run_generate,
CronTrigger(hour=3, minute=30), CronTrigger(hour=2, minute=0),
id='scheduled_generate', id='scheduled_generate',
replace_existing=True, replace_existing=True,
max_instances=1, max_instances=1,
@@ -57,7 +57,7 @@ class TaskScheduler:
) )
self.scheduler.add_job( self.scheduler.add_job(
self._run_optimize, self._run_optimize,
CronTrigger(hour=4, minute=30), CronTrigger(hour=3, minute=0),
id='scheduled_optimize', id='scheduled_optimize',
replace_existing=True, replace_existing=True,
max_instances=1, max_instances=1,
@@ -81,7 +81,7 @@ class TaskScheduler:
) )
self.scheduler.start() self.scheduler.start()
self._started = True self._started = True
logger.info("Scheduler started: 01:00 search_cache → 01:30 collect → 03:00 trends → 03:30 generate → 04:30 review 05:00 optimize_sources 06:00 metrics_sync") logger.info("Scheduler started: 01:00 search 01:10 trends 01:30 collect 02:00 create 03:00 review 05:00 sources 06:00 metrics")
def shutdown(self): def shutdown(self):
if self.scheduler.running: if self.scheduler.running:
self.scheduler.shutdown() self.scheduler.shutdown()