1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- """
- 定时任务调度模块
- 提供定时任务的调度和管理功能
- """
- from apscheduler.schedulers.background import BackgroundScheduler
- from apscheduler.triggers.cron import CronTrigger
- from utils.logger import logger
- from utils.file_utils import clean_old_files
- def init_scheduler(output_folder):
- """
- 初始化调度器,添加定时清理任务
-
- 参数:
- output_folder: 输出文件根目录
-
- 返回:
- scheduler: 已启动的调度器对象
- """
- logger.info("初始化定时任务调度器")
- scheduler = BackgroundScheduler()
-
- # 每天凌晨2点执行清理任务
- scheduler.add_job(
- lambda: clean_old_files(output_folder),
- trigger=CronTrigger(hour=2, minute=0),
- id='clean_old_files_job',
- name='清理前一天的输出文件',
- replace_existing=True
- )
-
- scheduler.start()
- logger.info("定时清理任务已启动,将在每天凌晨2:00执行")
-
- # 添加关闭时的清理
- import atexit
- def shutdown_handler():
- scheduler.shutdown()
- logger.info("应用程序关闭,调度器已停止")
-
- atexit.register(shutdown_handler)
-
- return scheduler
|