feat(weight-evolver): cron 3종 등록 (월 generate+apply / 일 apply / 토 evaluate)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -38,6 +38,11 @@ from .strategy_evolver import (
|
||||
get_weights_with_trend, recalculate_weights,
|
||||
generate_smart_recommendation,
|
||||
)
|
||||
from .weight_evolver import (
|
||||
generate_weekly_candidates_and_save,
|
||||
apply_today_and_pick,
|
||||
evaluate_weekly,
|
||||
)
|
||||
from .routers import curator as curator_router
|
||||
from .routers import briefing as briefing_router
|
||||
from .routers import review as review_router
|
||||
@@ -111,9 +116,42 @@ def on_startup():
|
||||
id="grade_weekly_review",
|
||||
)
|
||||
|
||||
scheduler.add_job(_run_weight_evolver_weekly, "cron", day_of_week="mon", hour=9, minute=0, id="weight_evolver_weekly")
|
||||
scheduler.add_job(_run_weight_evolver_daily, "cron", hour=9, minute=0, id="weight_evolver_daily")
|
||||
scheduler.add_job(_run_weight_evolver_eval, "cron", day_of_week="sat", hour=22, minute=0, id="weight_evolver_eval")
|
||||
|
||||
scheduler.start()
|
||||
|
||||
|
||||
async def _run_weight_evolver_weekly():
|
||||
"""월 09:00 — 6개 후보 생성 후 inline으로 apply_today도 호출."""
|
||||
try:
|
||||
generate_weekly_candidates_and_save()
|
||||
apply_today_and_pick(n=5)
|
||||
except Exception as e:
|
||||
logger.error(f"[weight_evolver_weekly] {e}")
|
||||
|
||||
|
||||
async def _run_weight_evolver_daily():
|
||||
"""매일 09:00 (월요일 제외 — 월은 weekly cron이 inline으로 처리)."""
|
||||
try:
|
||||
from datetime import datetime, timezone, timedelta
|
||||
KST = timezone(timedelta(hours=9))
|
||||
if datetime.now(KST).weekday() == 0:
|
||||
return
|
||||
apply_today_and_pick(n=5)
|
||||
except Exception as e:
|
||||
logger.error(f"[weight_evolver_daily] {e}")
|
||||
|
||||
|
||||
async def _run_weight_evolver_eval():
|
||||
"""토 22:00 — 회고 + 다음주 base 갱신."""
|
||||
try:
|
||||
evaluate_weekly()
|
||||
except Exception as e:
|
||||
logger.error(f"[weight_evolver_eval] {e}")
|
||||
|
||||
|
||||
@app.get("/health")
|
||||
def health():
|
||||
return {"ok": True}
|
||||
|
||||
Reference in New Issue
Block a user