Celery使用报错:Received unregistered task of type '***.tasks.sms.task_sms.send_template_sms'.

问题描述:

有多个任务需要时使用Celery目录结构,在程序启动之后,任务列表里面没有任务显示,而且程序收到任务之后,报错:Received unregistered task of type ‘***.tasks.sms.task_sms.send_template_sms’.具体如下图:
Celery使用报错:Received unregistered task of type '***.tasks.sms.task_sms.send_template_sms'._第1张图片
下面是我的项目目录文件:
Celery使用报错:Received unregistered task of type '***.tasks.sms.task_sms.send_template_sms'._第2张图片

问题分析:

以上报错信息大致意思是说你的任务还没有注册,根据此条信息我们先看下我们的任务注册文件有没有注册任务:
Celery使用报错:Received unregistered task of type '***.tasks.sms.task_sms.send_template_sms'._第3张图片
可以看到任务是已注册的,但是程序启动之后一直没有找到。

问题解决:

网上查了很多,都没有具体的解决方法,大多只是分析了一下,有点模棱两可的,对新接触的人不太友好。下面是我的解决方法:
1、先检查sms/task_sms.py文件,检查定义任务的装饰器后面的方法是不是task,不要粗心写成 tasks
Celery使用报错:Received unregistered task of type '***.tasks.sms.task_sms.send_template_sms'._第4张图片
2、注册任务的文件路径写的再具体点,具体到文件路径:
Celery使用报错:Received unregistered task of type '***.tasks.sms.task_sms.send_template_sms'._第5张图片
重新启动Celery试试:
Celery使用报错:Received unregistered task of type '***.tasks.sms.task_sms.send_template_sms'._第6张图片
任务列表里面已经出现注册任务了,再试试生产消费任务:
Celery使用报错:Received unregistered task of type '***.tasks.sms.task_sms.send_template_sms'._第7张图片
好了,任务正常执行,完美!!!

你可能感兴趣的:(Flask,疑难杂症)