__init__.py 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. """定时任务模块"""
  2. import logging
  3. from apscheduler.schedulers.background import BackgroundScheduler
  4. from apscheduler.triggers.cron import CronTrigger
  5. logger = logging.getLogger(__name__)
  6. scheduler = BackgroundScheduler()
  7. def init_scheduled_tasks(get_db_session):
  8. """初始化定时任务。"""
  9. if scheduler.running:
  10. return
  11. scheduler.start()
  12. from app.services.basic_experiment_delivery_remind import run_delivery_remind_job
  13. scheduler.add_job(
  14. run_delivery_remind_job,
  15. trigger=CronTrigger(hour=10, minute=0),
  16. args=[get_db_session],
  17. id="basic_experiment_delivery_remind",
  18. replace_existing=True,
  19. max_instances=1,
  20. coalesce=True,
  21. )
  22. logger.info(
  23. "定时任务调度器已启动:basic_experiment_delivery_remind @ 10:00 daily"
  24. )
  25. def shutdown_scheduler():
  26. if scheduler.running:
  27. scheduler.shutdown(wait=False)
  28. logger.info("定时任务调度器已关闭")
  29. __all__ = [
  30. "scheduler",
  31. "init_scheduled_tasks",
  32. "shutdown_scheduler",
  33. ]