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,问题也同样出现
推荐文章: