celery 报错 in on_task_received 解决

 django celery 定时任务没有执行 看日志 报错

The full contents of the message body was:
b'[[], {}, {"callbacks": null, "errbacks": null, "chain": null, "chord": null}]' (77b)
Traceback (most recent call last):
  File "/root/.virtualenvs/lease/lib/python3.6/site-packages/celery/worker/consumer/consumer.py", line 559, in on_task_received
    strategy = strategies[type_]
KeyError: 'apps.orders.tasks.ceshi'

这是因为找不到 apps.orders.tasks.ceshi

目前文件夹结构是 我把所有的app 都放到了 apps 文件夹中

Django settings中的配置是

修改的方法有两种

方法一:settings 中的配置不变 修改装饰器  指定名称 name  

@app.task(name="apps.orders.tasks.ceshi1")
# @app.task  原来的
@app.task(name="apps.orders.tasks.ceshi1")
def ceshi1(stat="celery",image_uuid="44444444444444566"):
    dd = datetime.datetime.now()
    print(dd)

方法2  装饰器不变  修改 settings 中的配置  去掉apps

CELERY_BEAT_SCHEDULE = {
    u'测试数据': {
            "task": "orders.tasks.ceshi1",
            "schedule": crontab(minute="*/1"),
            "args": ("1111111111111111",),
        },}



# apps.orders.tasks.py 中不变

@app.task
def ceshi1(stat="celery",image_uuid="44444444444444566"):
    dd = datetime.datetime.now()
    print(dd)
    from users.models import ImageCode
发布了73 篇原创文章 · 获赞 41 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/weixin_37989267/article/details/104953375