使用的环境
python: 3.7.9
celery : 5.0.5
异常信息:
具体的报错原因暂时没找到,不过经历了半天的时间在网上找到了很多种方法,但是只有这一种有效
当然是否是适合其他版本,我这里没有测试,你可以试试,我这只是自己的一个记录
解决方法:
在创建celery对象时 添加参数
include
参数
celery对象创建 在 init.py 文件中
from celery import Celery
from app import app # 配合flask一起使用的话,引入flask对象
def make_celery(app):
celery_app = Celery('default',
backend=app.config['CELERY_RESULT_BACKEND'],
broker=app.config['CELERY_BROKER_URL'],
include=['celery_task.tasks'], # 这里是关键点,这个地方指向了任务定义的文件
)
class ContextTask(celery_app.Task):
def __call__(self, *args, **kwargs):
with app.app_context():
return self.run(*args, **kwargs)
celery_app.Task = ContextTask
return celery_app
celery_app = make_celery(app=app)
任务定义在 tasks.py 文件中
from celery_task import celery_app
# 待处理异步任务1
@celery_app.task
def filter_befor_save():
'''
采集到的数据 入库前进行最终过滤 去重 包括
'''
print('执行 filter_befor_save')
return 1+1