deliveryman-api/app/tasks/daily_tasks.py
2025-03-11 08:09:04 +08:00

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