2015-08-06 3 views
0

ПроблемаПочему AsyncResult возвращает NoneType после выполнения задачи?

AsyncResult возвращает NoneType для задания после его завершения.

Вопрос

Как я могу получить сельдерея состояние задачи после того, как это делается?

Описание

Ниже приведен код зрения Джанго для получения состояния сельдерей задачи. Я использую это представление для запроса выполнения задач из моего клиентского приложения. Он работает нормально, пока задача не будет выполнена. Затем AsyncResult возвращает NoneType каждый раз, когда я называю это для моей задачи, и я получаю следующее сообщение об ошибке:

объекта «NoneType» не имеет атрибут «получить»

# 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 

ответ

0

Вам нужно определить результат бэкенд , См. the tutorial.

+0

Как мой рабочий, так и очередь настроены с помощью backend = "amqp" – Buyuk

 Смежные вопросы

  • Нет связанных вопросов^_^