feat(task): 后台任务改为apscheduler执行

This commit is contained in:
xingc
2025-05-12 20:08:50 +08:00
parent eec9d3048c
commit 680c5c2b63
9 changed files with 74 additions and 11 deletions

View File

@@ -8,10 +8,12 @@ import logging
from xml.parsers.expat import ExpatError
import xmltodict
from fastapi import APIRouter, Request, HTTPException, status, Depends, BackgroundTasks
from asyncer import asyncify
from fastapi import APIRouter, Request, HTTPException, status, Depends
from sqlalchemy.ext.asyncio import AsyncSession
from core.base import schema as base_schema
from core.base.scheduler import add_task
from core.db.crud import CRUD
from core.db.engine import get_async_session
from core.db.models import Order, Product
@@ -94,7 +96,6 @@ async def create_order(
@pay_router.post('/wechat/notify', summary='处理支付结果通知', response_model=base_schema.BaseResponse)
async def wechat_notify(
request: Request,
background_tasks: BackgroundTasks,
db_session: AsyncSession = Depends(get_async_session)
):
body = await request.body()
@@ -129,7 +130,11 @@ async def wechat_notify(
'status': base_schema.OrderStatusType.PAID
})
result = {'status': 200, 'message': 'OK'}
background_tasks.add_task(actions_after_payment, notify_params=params, db_session=db_session)
await asyncify(add_task)(
actions_after_payment,
notify_params=params,
task_id=record['order_id'],
)
else:
result = {'status': 400, 'message': '支付失败'}
record.update({