jobs.py 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. from datetime import datetime
  2. from zoneinfo import ZoneInfo
  3. from app.services.demand_pool_strategy_daily_alert import run_daily_strategy_alert
  4. from app.services.strategy_generate_service import run_strategy_generation
  5. from app.sync.demand_pool_sync import run_full_sync, run_today_incremental_sync
  6. def heartbeat_job() -> None:
  7. now = datetime.now(ZoneInfo("Asia/Shanghai")).isoformat()
  8. print(f"[scheduler] heartbeat at {now}")
  9. def demand_pool_full_sync_job() -> None:
  10. print("[scheduler] start full sync for demand pool")
  11. result = run_full_sync()
  12. print(f"[scheduler] full sync done: {result}")
  13. def demand_pool_today_incremental_sync_job() -> None:
  14. print("[scheduler] start incremental sync for demand pool")
  15. result = run_today_incremental_sync()
  16. print(f"[scheduler] incremental sync done: {result}")
  17. def demand_pool_daily_strategy_alert_job(partition_dt: str | None = None) -> None:
  18. print("[scheduler] start daily ODPS strategy alert for demand pool")
  19. try:
  20. result = run_daily_strategy_alert(partition_dt)
  21. print(f"[scheduler] daily strategy alert done: {result}")
  22. except Exception as exc:
  23. print(f"[scheduler] daily strategy alert failed: {exc}")
  24. raise
  25. def strategy_staging_hourly_generate_job(batch_date: str | None = None) -> None:
  26. print("[scheduler] start hourly strategy generation for strategy_staging")
  27. try:
  28. result = run_strategy_generation(batch_date)
  29. print(
  30. "[scheduler] strategy generation done: "
  31. f"batch_date={result['batch_date']}, "
  32. f"active={result['active_count']}, "
  33. f"success={result['success_count']}, "
  34. f"skipped={result.get('skipped_count', 0)}, "
  35. f"errors={result['error_count']}"
  36. )
  37. if result["warnings"]:
  38. print(f"[scheduler] strategy generation warnings: {result['warnings']}")
  39. if result["errors"]:
  40. print(f"[scheduler] strategy generation errors: {result['errors']}")
  41. except Exception as exc:
  42. print(f"[scheduler] strategy generation failed: {exc}")
  43. raise