celery 执行含 sqlalchemy 的异步任务,报错 ModuleNotFoundError

### 在使用celery+fastapi的时候,执行异步任务就报错:ModuleNotFoundError,开始怀疑是文件的运行环境不一致,加入了运行环境也不行。

##异步任务代码

from future import absolute_import
from .import celeryapp
@celeryapp.task(name=’apps.celery_task.task002.newadd’)
def newadd():
from apps.model.user_model import User
from apps.db import session
query = session.query(User)
user = User(email=’email’, password=’password1’, nickname=’nickname’)
session.add(user)
session.commit()
return user

##路由函数
from fastapi import APIRouter
from apps.celery_task.task002 import newadd
router = APIRouter()

@router.get(“/test1”)
async def views() :
a=newadd.delay()
return a

##sqlalchemy代码
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import scoped_session, sessionmaker

engine = create_engine(“*****”, pool_recycle=3600)
session = scoped_session(
sessionmaker(
autocommit=False,
autoflush=False,
bind=engine,
)
)
Base = declarative_base()
也怀疑过是不是上下文问题,尝试过用@contextmanager,问题也同样出现:satisfied:

讨论数量: 1

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!