Python 为什么AsyncResult在任务完成后返回NoneType?

Python 为什么AsyncResult在任务完成后返回NoneType?,python,rabbitmq,django-celery,Python,Rabbitmq,Django Celery,问题 AsyncResult在任务完成后返回非类型 问题 完成后如何获取芹菜任务状态 说明 下面是django视图的代码,用于获取芹菜任务状态。我使用此视图从我的客户端应用程序查询任务进度。它工作正常,直到任务完成。之后,每次为任务调用AsyncResult时,AsyncResult都会返回NoneType,并出现以下错误: “非类型”对象没有属性“get” 您需要定义一个结果后端。请参阅。您需要定义结果后端。请参阅。我的工作人员和队列都配置了backend=“amqp”我的工作人员和队列都配置

问题

AsyncResult在任务完成后返回非类型

问题

完成后如何获取芹菜任务状态

说明

下面是django视图的代码,用于获取芹菜任务状态。我使用此视图从我的客户端应用程序查询任务进度。它工作正常,直到任务完成。之后,每次为任务调用AsyncResult时,AsyncResult都会返回NoneType,并出现以下错误:

“非类型”对象没有属性“get”


您需要定义一个结果后端。请参阅。

您需要定义结果后端。请参阅。

我的工作人员和队列都配置了backend=“amqp”我的工作人员和队列都配置了backend=“amqp”您是否解决过此问题?我遇到了相同的问题,您是否能够解决此问题?我确定我解决了,不幸的是,很久以前我就不记得如何解决了。。。很抱歉没有提供更多帮助。@VinayKadalagi您的任务必须返回一些内容。假设它返回一个简单的字符串:“此任务已结束”。这是你的任务结果。如果任务没有返回任何结果,你将没有结果,因此…没有类型。你曾经解决过这个问题吗?我也遇到了同样的问题,你是否能够解决这个问题?我肯定我解决了,不幸的是,那是很久以前的事了,我不记得是怎么解决的。。。很抱歉没有提供更多帮助。@VinayKadalagi您的任务必须返回一些内容。假设它返回一个简单的字符串:“此任务已结束”。这是你的任务结果。如果任务没有返回任何内容,那么您将没有任何内容,因此…没有类型。
# Celery configuration
celery = Celery('tasks', backend='amqp', broker="amqp://")

# My django view for getting task state    
def GetTaskStatus(request):
    task = AsyncResult(request.body["taskid"], app=celery)
    if task.state == 'PENDING':
        data = {
            'state': task.state,
            'progress': task.info.get("progress", 0)
        }
    elif task.state != 'FAILURE':
        data = {
            'state': task.state,
            'progress': task.info.get("progress", 0)
        }
    else:
        data = {
            'state': task.state,
            'error': "something went wrong",
            'progress': task.info.get("progress", 0)
        }
    response = GetHttpResponseJSON(ResponseCode.OK, data)
    return response