一、bug背景
celery的配置有两个关键项broker和backend。
Broker是一个消息传输的中间件,推荐RabbitMQ,Redis。
Backend通常程序发送的消息,并不知道执行的结果,为此,celery实现了一个backend,用于存储这些消息以及celery执行的结果,推荐使用数据库。
二、bug详解
NotImplementedError: No result backend is configured.
对于没有设置Backend,但是函数中出现了接收行为,例如下面代码
from celery import shared_task
@shared_task
def hello():
print('hello world')
result = hello.delay() #注意result接收了执行结果
则会出现下述报错
NotImplementedError: No result backend is configured.
只需要将上述代码改为下方代码,即可。
from celery import shared_task
@shared_task
def hello():
print('hello world')
hello.delay() #改为不接收了执行结果