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

@@ -7,8 +7,11 @@
# @Desc :
import logging
from sqlalchemy.ext.asyncio import AsyncSession
from core.base.schema import ProductCategory
from core.db.crud import CRUD
from core.db.engine import async_db_session
from core.db.models import User, Product
from core.routers.auth.schema import LoginUser
from core.routers.pay.actions import actions_handler
@@ -16,11 +19,13 @@ from core.routers.pay.actions import actions_handler
logger = logging.getLogger(__name__)
@async_db_session()
async def reward_points_after_uploading_pictures(
db_crud: CRUD,
gift_product_id: int,
login_user: LoginUser
login_user: LoginUser,
db_session: AsyncSession
):
db_crud = CRUD(db_session, Product)
product: Product = await db_crud.get(
model=Product, filters={
'id': gift_product_id,

View File

@@ -8,6 +8,7 @@ import logging
from typing import List, Literal
import ujson
from asyncer import asyncify
from fastapi import APIRouter, Depends, Query, HTTPException, status
import redis.asyncio as aioredis
from sqlalchemy import select, func
@@ -15,6 +16,7 @@ from sqlalchemy.ext.asyncio import AsyncSession
from config import settings
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, get_cache
from core.db.models import Card, SearchCardCache, UserCollection, User
@@ -243,11 +245,12 @@ async def created_card(
)
# 上传图片奖励
if payload.reward and settings.UPLOAD_REWARD_POINTS_GIFT_ID > 0:
await reward_points_after_uploading_pictures(
db_crud, gift_product_id=settings.UPLOAD_REWARD_POINTS_GIFT_ID, login_user=login_user
await asyncify(add_task)(
reward_points_after_uploading_pictures,
gift_product_id=settings.UPLOAD_REWARD_POINTS_GIFT_ID, login_user=login_user,
task_id=f'{login_user.user_id}-{card.card_number}'
)
else:
if card is None:
card: Card = await db_crud.create(