ПроблемаПочему 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
Как мой рабочий, так и очередь настроены с помощью backend = "amqp" – Buyuk