import logging import asyncio from datetime import datetime, timedelta from app.models.database import get_db_context from app.core.scheduler import scheduler from sqlalchemy import text import json import os logger = logging.getLogger(__name__) async def daily_statistics_report(): """每日统计报告任务""" logger.info(f"开始生成每日统计报告: {datetime.now()}") try: with get_db_context() as db: #获取昨日时间 yesterday = datetime.now() - timedelta(days=1) yesterday_start = datetime.combine(yesterday, datetime.min.time()) yesterday_end = datetime.combine(yesterday, datetime.max.time()) except Exception as e: logger.error(f"生成每日统计报告失败: {str(e)}") def register_daily_tasks(): """注册所有每日定时任务""" # 每天早上8点生成统计报告 scheduler.add_cron_job( daily_statistics_report, hour=8, minute=0, job_id="daily_stats_report" ) logger.info("已注册所有每日定时任务")