43 lines
1.1 KiB
Python
43 lines
1.1 KiB
Python
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("已注册所有每日定时任务") |