celery.result
Результаты и состояние задач, а также результаты групп задач.
- classcelery.result.AsyncResult(id, backend=None, task_name=None, app=None, parent=None)
-
Запросить состояние задачи.
- exceptionTimeoutError
-
Время ожидания операции истекло.
- app=None
- propertyargs
- as_list()
-
Вернуть список идентификаторов задач.
- as_tuple()
- backend=None
-
Бэкенд результатов задач, который нужно использовать.
- build_graph(intermediate=False, formatter=None)
- propertychildren
- collect(intermediate=False, **kwargs)
-
Собирать результаты по мере их поступления.
Итератор, который, подобно
get(), будет ждать завершения задачи, а также отслеживатьAsyncResultиResultSet, возвращённые задачей, выдавая кортежи(result, value)для каждого результата в дереве.Например, можно определить следующие задачи:
from celery import group from proj.celery import app @app.task(trail=True) def A(how_many): return group(B.s(i) for i in range(how_many))() @app.task(trail=True) def B(i): return pow2.delay(i) @app.task(trail=True) def pow2(i): return i ** 2>>> from celery.result import ResultBase >>> from proj.tasks import A >>> result = A.delay(10) >>> [v for v in result.collect() ... if not isinstance(v, (ResultBase, tuple))] [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
Примечание
Чтобы список дочерних задач сохранялся в
result.children, необходимо включить параметрTask.trail. Это поведение включено по умолчанию, но здесь оно включено явно для наглядности.- Возвращает:
-
Tuple[AsyncResult, Any] – кортежи, содержащие экземпляр результата дочерней задачи и возвращаемое этой задачей значение.
- propertydate_done
-
Дата и время в формате UTC.
- failed()
-
Возвращает
True, если задача завершилась с ошибкой.
- forget()
-
Удалить результат этой задачи и её родительских задач.
- get(timeout=None, propagate=True, interval=0.5, no_ack=True, follow_parents=True, callback=None, on_message=None, on_interval=None, disable_sync_subtasks=True, EXCEPTION_STATES=frozenset({'FAILURE', 'RETRY', 'REVOKED'}), PROPAGATE_STATES=frozenset({'FAILURE', 'REVOKED'}))
-
Ожидать готовности задачи и вернуть её результат.
Предупреждение
Ожидание задач внутри другой задачи может привести к взаимным блокировкам. Прочитайте раздел Избегайте запуска синхронных подзадач.
Предупреждение
Бэкенды используют ресурсы для хранения и передачи результатов. Чтобы освободить ресурсы, необходимо в конечном итоге вызвать
get()илиforget()для КАЖДОГО экземпляраAsyncResult, возвращённого после вызова задачи.- Параметры:
-
timeout (float) – Сколько секунд ждать до истечения времени ожидания операции. Это настройка издателя (клиента Celery), отличающаяся от параметра timeout декоратора @app.task, который задаёт настройку для рабочего процесса. Даже если время ожидания истечёт, задача не будет прервана.
propagate (bool) – Повторно вызвать исключение, если задача завершилась с ошибкой.
interval (float) – Время ожидания (в секундах) перед повторной попыткой получить результат. Обратите внимание, что этот параметр не действует при использовании бэкендов хранилища результатов RPC/Redis, поскольку они не используют опрос.
no_ack (bool) – Включить режим AMQP no ack (автоматически подтверждать сообщение). Если значение равно
False, сообщение не будет подтверждено.follow_parents (bool) – Повторно вызвать любое исключение, возникшее в родительских задачах.
disable_sync_subtasks (bool) – Запретить задачам ожидать выполнения подзадач; это конфигурация по умолчанию. ВНИМАНИЕ: не включайте этот параметр без необходимости.
- Вызывает исключения:
-
celery.exceptions.TimeoutError – если timeout не равен
Noneи результат не поступает в течение указанного количества секунд.Exception – Если при удалённом вызове возникло исключение, оно будет повторно вызвано в процессе вызывающей стороны.
- get_leaf()
- propertygraph
- id=None
-
UUID задачи.
- propertyignored
-
Если значение равно True, получение результата задачи отключено.
- propertyinfo
-
Возвращаемое задачей значение.
Примечание
После выполнения задачи здесь содержится возвращаемое значение. Если задача вызвала исключение, здесь будет находиться экземпляр этого исключения.
- iterdeps(intermediate=False)
- propertykwargs
- maybe_reraise(propagate=True, callback=None)
- maybe_throw(propagate=True, callback=None)
- propertyname
- propertyqueue
- ready()
-
Возвращает
True, если задача выполнена.Если задача всё ещё выполняется, ожидает запуска или ждёт повторной попытки, возвращается
False.
- propertyresult
-
Возвращаемое задачей значение.
Примечание
После выполнения задачи здесь содержится возвращаемое значение. Если задача вызвала исключение, здесь будет находиться экземпляр этого исключения.
- propertyretries
- revoke(connection=None, terminate=False, signal=None, wait=False, timeout=None)
-
Отправить сигнал отмены всем рабочим процессам.
Любой рабочий процесс, получивший задачу или зарезервировавший её, должен проигнорировать её.
- Параметры:
-
terminate (bool) – Также завершить процесс, который в данный момент выполняет задачу (если такой есть).
signal (str) – Имя сигнала, отправляемого процессу при завершении. По умолчанию — TERM.
wait (bool) – Ожидать ответов от рабочих процессов. Аргумент
timeoutзадаёт время ожидания в секундах. По умолчанию отключено.timeout (float) – Время ожидания ответов в секундах, если включён параметр
wait.
- revoke_by_stamped_headers(headers, connection=None, terminate=False, signal=None, wait=False, timeout=None)
-
Отправить сигнал отмены всем рабочим процессам только для задач, значения заголовков которых совпадают.
Любой рабочий процесс, получивший задачу или зарезервировавший её, должен проигнорировать её. Все поля заголовков должны совпадать.
- Параметры:
-
headers (dict[str, Union(str, list)]) – Заголовки, которым должны соответствовать задачи для отмены.
terminate (bool) – Также завершить процесс, который в данный момент выполняет задачу (если такой есть).
signal (str) – Имя сигнала, отправляемого процессу при завершении. По умолчанию — TERM.
wait (bool) – Ожидать ответов от рабочих процессов. Аргумент
timeoutзадаёт время ожидания в секундах. По умолчанию отключено.timeout (float) – Время ожидания ответов в секундах, если включён параметр
wait.
- propertystate
-
Текущее состояние задачи.
Возможные значения:
PENDING
Задача ожидает выполнения.
STARTED
Задача запущена.
RETRY
Задача будет выполнена повторно, возможно, из-за сбоя.
FAILURE
Задача вызвала исключение или превысила лимит повторных попыток. В атрибуте
resultсодержится исключение, вызванное задачей.SUCCESS
Задача успешно выполнена. В атрибуте
resultсодержится возвращаемое задачей значение.
- propertystatus
-
Текущее состояние задачи.
Возможные значения:
PENDING
Задача ожидает выполнения.
STARTED
Задача запущена.
RETRY
Задача будет выполнена повторно, возможно, из-за сбоя.
FAILURE
Задача вызвала исключение или превысила лимит повторных попыток. В атрибуте
resultсодержится исключение, вызванное задачей.SUCCESS
Задача успешно выполнена. В атрибуте
resultсодержится возвращаемое задачей значение.
- successful()
-
Возвращает
True, если задача выполнена успешно.
- propertysupports_native_join
- propertytask_id
-
Совместимый псевдоним для
id.
- then(callback, on_error=None, weak=False)
- throw(*args, **kwargs)
- propertytraceback
-
Получить трассировку стека задачи, завершившейся с ошибкой.
- wait(timeout=None, propagate=True, interval=0.5, no_ack=True, follow_parents=True, callback=None, on_message=None, on_interval=None, disable_sync_subtasks=True, EXCEPTION_STATES=frozenset({'FAILURE', 'RETRY', 'REVOKED'}), PROPAGATE_STATES=frozenset({'FAILURE', 'REVOKED'}))
-
Ожидает завершения задачи и возвращает результат.
Предупреждение
Ожидание выполнения задач внутри задачи может привести к взаимоблокировке. См. Не запускайте синхронные подзадачи.
Предупреждение
Бэкенды используют ресурсы для хранения и передачи результатов. Чтобы освободить ресурсы, необходимо в конечном итоге вызвать
get()илиforget()для КАЖДОГО экземпляраAsyncResult, возвращённого после вызова задачи.- Параметры:
-
timeout (float) – Время ожидания в секундах до истечения срока операции. Эта настройка относится к издателю (клиенту Celery) и отличается от параметра timeout декоратора @app.task, который задаёт настройку для исполнителя. Даже при истечении времени ожидания задача не завершается.
propagate (bool) – Повторно вызвать исключение, если задача завершилась с ошибкой.
interval (float) – Время ожидания (в секундах) перед повторной попыткой получить результат. Обратите внимание, что эта настройка не действует при использовании бэкендов хранилища результатов RPC/Redis, поскольку они не используют опрос.
no_ack (bool) – Включить режим AMQP без подтверждения (автоматическое подтверждение сообщения). Если значение равно
False, сообщение не будет подтверждено.follow_parents (bool) – Повторно вызвать любое исключение, возникшее в родительских задачах.
disable_sync_subtasks (bool) – Запретить задачам ожидать завершения подзадач; это настройка по умолчанию. ВНИМАНИЕ: не отключайте этот запрет без необходимости.
- Вызывает исключения:
-
celery.exceptions.TimeoutError – если timeout не равен
Noneи результат не поступил в течение указанного количества секунд timeout.Exception – Если при удалённом вызове возникло исключение, оно будет повторно вызвано в процессе вызывающей стороны.
- propertyworker
- classcelery.result.EagerResult(id, ret_value, state, traceback=None, name=None)
-
Результат, для которого известно, что задача уже выполнена.
- forget()
-
Удаляет результат этой задачи и её родительских задач.
- get(timeout=None, propagate=True, disable_sync_subtasks=True, **kwargs)
-
Ожидает завершения задачи и возвращает результат.
Предупреждение
Ожидание выполнения задач внутри задачи может привести к взаимоблокировке. См. Не запускайте синхронные подзадачи.
Предупреждение
Бэкенды используют ресурсы для хранения и передачи результатов. Чтобы освободить ресурсы, необходимо в конечном итоге вызвать
get()илиforget()для КАЖДОГО экземпляраAsyncResult, возвращённого после вызова задачи.- Параметры:
-
timeout (float) – Время ожидания в секундах до истечения срока операции. Эта настройка относится к издателю (клиенту Celery) и отличается от параметра timeout декоратора @app.task, который задаёт настройку для исполнителя. Даже при истечении времени ожидания задача не завершается.
propagate (bool) – Повторно вызвать исключение, если задача завершилась с ошибкой.
interval (float) – Время ожидания (в секундах) перед повторной попыткой получить результат. Обратите внимание, что эта настройка не действует при использовании бэкендов хранилища результатов RPC/Redis, поскольку они не используют опрос.
no_ack (bool) – Включить режим AMQP без подтверждения (автоматическое подтверждение сообщения). Если значение равно
False, сообщение не будет подтверждено.follow_parents (bool) – Повторно вызвать любое исключение, возникшее в родительских задачах.
disable_sync_subtasks (bool) – Запретить задачам ожидать завершения подзадач; это настройка по умолчанию. ВНИМАНИЕ: не отключайте этот запрет без необходимости.
- Вызывает исключения:
-
celery.exceptions.TimeoutError – если timeout не равен
Noneи результат не поступил в течение указанного количества секунд timeout.Exception – Если при удалённом вызове возникло исключение, оно будет повторно вызвано в процессе вызывающей стороны.
- ready()
-
Возвращает
True, если задача выполнена.Если задача ещё выполняется, ожидает выполнения или ожидает повторной попытки, возвращается
False.
- propertyresult
-
Возвращаемое значение задачи.
- revoke(*args, **kwargs)
-
Отправляет всем исполнителям сигнал отмены задачи.
Любой исполнитель, получивший задачу или зарезервировавший её, должен её проигнорировать.
- Параметры:
-
terminate (bool) – Также завершить процесс, который в данный момент выполняет задачу (если такой есть).
signal (str) – Название сигнала, отправляемого процессу при завершении. По умолчанию используется TERM.
wait (bool) – Ожидать ответов от исполнителей. Аргумент
timeoutзадаёт время ожидания в секундах. По умолчанию отключено.timeout (float) – Время ожидания ответов в секундах, если включён аргумент
wait.
- propertystate
-
Состояние задачи.
- propertystatus
-
Состояние задачи.
- propertysupports_native_join
- then(callback, on_error=None, weak=False)
- propertytraceback
-
Трассировка стека, если задача завершилась с ошибкой.
- wait(timeout=None, propagate=True, disable_sync_subtasks=True, **kwargs)
-
Ожидает завершения задачи и возвращает результат.
Предупреждение
Ожидание выполнения задач внутри задачи может привести к взаимоблокировке. См. Не запускайте синхронные подзадачи.
Предупреждение
Бэкенды используют ресурсы для хранения и передачи результатов. Чтобы освободить ресурсы, необходимо в конечном итоге вызвать
get()илиforget()для КАЖДОГО экземпляраAsyncResult, возвращённого после вызова задачи.- Параметры:
-
timeout (float) – Время ожидания в секундах до истечения срока операции. Эта настройка относится к издателю (клиенту Celery) и отличается от параметра timeout декоратора @app.task, который задаёт настройку для исполнителя. Даже при истечении времени ожидания задача не завершается.
propagate (bool) – Повторно вызвать исключение, если задача завершилась с ошибкой.
interval (float) – Время ожидания (в секундах) перед повторной попыткой получить результат. Обратите внимание, что эта настройка не действует при использовании бэкендов хранилища результатов RPC/Redis, поскольку они не используют опрос.
no_ack (bool) – Включить режим AMQP без подтверждения (автоматическое подтверждение сообщения). Если значение равно
False, сообщение не будет подтверждено.follow_parents (bool) – Повторно вызвать любое исключение, возникшее в родительских задачах.
disable_sync_subtasks (bool) – Запретить задачам ожидать завершения подзадач; это настройка по умолчанию. ВНИМАНИЕ: не отключайте этот запрет без необходимости.
- Вызывает исключения:
-
celery.exceptions.TimeoutError – если timeout не равен
Noneи результат не поступил в течение указанного количества секунд timeout.Exception – Если при удалённом вызове возникло исключение, оно будет повторно вызвано в процессе вызывающей стороны.
- classcelery.result.GroupResult(id=None, results=None, parent=None, **kwargs)
-
Как
ResultSet, но с привязанным идентификатором.Этот тип возвращается функцией
group.Позволяет рассматривать состояния и возвращаемые значения задач как единое целое.
- Параметры:
-
id (str) – Идентификатор группы.
results (Sequence[AsyncResult]) – Список экземпляров результатов.
parent (ResultBase) – Родительский результат этой группы.
- as_tuple()
- propertychildren
- delete(backend=None)
-
Удаляет этот результат, если он был сохранён ранее.
- id=None
-
UUID группы.
- classmethodrestore(id, backend=None, app=None)
-
Восстанавливает ранее сохранённый результат группы.
- results=None
-
Список или итератор результатов в группе
- save(backend=None)
-
Сохраняет результат группы для последующего получения с помощью
restore().Пример
>>> def save_and_restore(result): ... result.save() ... result = GroupResult.restore(result.id)
- classcelery.result.ResultBase
-
Базовый класс результатов.
- parent=None
-
Родительский результат (если входит в цепочку)
- classcelery.result.ResultSet(results, app=None, ready_barrier=None, **kwargs)
-
Коллекция результатов.
- Параметры:
-
results (Sequence[AsyncResult]) – Список экземпляров результатов.
- add(result)
-
Добавить
AsyncResultв качестве нового элемента множества.Ничего не делает, если результат уже является элементом множества.
- propertyapp
- propertybackend
- clear()
-
Удалить все результаты из этого множества.
- completed_count()
-
Количество завершённых задач.
Обратите внимание, что в данном контексте завершённая означает успешно выполненная. Другими словами, возвращаемое этим методом значение — количество задач
successful.- Возвращает:
-
количество завершённых (т. е. успешно выполненных) задач.
- Тип возвращаемого значения:
- discard(result)
-
Удалить результат из множества, если он является его элементом.
Ничего не делает, если результат не является элементом множества.
- failed()
-
Возвращает true, если какая-либо задача завершилась с ошибкой.
- Возвращает:
-
- true, если одна из задач завершилась с ошибкой.
-
(т. е. вызвала исключение)
- Тип возвращаемого значения:
- forget()
-
Забыть о всех задачах (и, возможно, удалить их результаты).
- get(timeout=None, propagate=True, interval=0.5, callback=None, no_ack=True, on_message=None, disable_sync_subtasks=True, on_interval=None)
-
См.
join().Этот метод существует для совместимости API с
AsyncResult; кроме того, он используетjoin_native(), если этот метод доступен для текущего бэкенда результатов.
- iter_native(timeout=None, interval=0.5, no_ack=True, on_message=None, on_interval=None)
-
Оптимизированная для бэкенда версия
iterate().Добавлено в версии 2.2.
Обратите внимание, что этот метод не поддерживает сбор результатов задач разных типов с использованием разных бэкендов.
В настоящее время этот метод поддерживается только бэкендами результатов amqp, Redis и cache.
- join(timeout=None, propagate=True, interval=0.5, callback=None, no_ack=True, on_message=None, disable_sync_subtasks=True, on_interval=None)
-
Собрать результаты всех задач в упорядоченный список.
Примечание
Для бэкендов хранилища результатов, которым приходится использовать опрос (например, базы данных), эта операция может быть затратной.
Если ваш бэкенд поддерживает этот метод, рассмотрите возможность использования
join_native().Предупреждение
Ожидание задач внутри задачи может привести к взаимным блокировкам. См. Избегайте запуска синхронных подзадач.
- Параметры:
-
timeout (float) – Количество секунд ожидания результатов до истечения времени ожидания операции.
propagate (bool) – Если какая-либо задача вызовет исключение, при установленном флаге это исключение будет вызвано повторно.
interval (float) – Время ожидания (в секундах) перед повторной попыткой получить результат из множества. Обратите внимание, что при использовании бэкенда хранилища результатов amqp этот параметр не действует, поскольку он не использует опрос.
callback (Callable) – Необязательная функция обратного вызова, вызываемая для каждого полученного результата. Должна иметь сигнатуру
(task_id, value). Если указана функция обратного вызова, эта функция не вернёт результатов. При использовании функции обратного вызова порядок результатов также произвольный. Чтобы получить доступ к объекту результата для конкретного идентификатора, сначала нужно создать индекс:index = {r.id: r for r in gres.results.values()}. Либо можно создавать объекты результатов на лету:result = app.AsyncResult(task_id)(в обоих случаях всё равно будет использоваться кэш бэкенда).no_ack (bool) – Автоматическое подтверждение сообщений (обратите внимание: если установлено значение
False, сообщения не будут подтверждены).disable_sync_subtasks (bool) – Запретить задачам ожидать завершения подзадач; это настройка по умолчанию. ВНИМАНИЕ: не отключайте этот параметр без необходимости.
- Вызывает исключения:
-
celery.exceptions.TimeoutError – если
timeoutне являетсяNoneи операция длится дольшеtimeoutсекунд.
- join_native(timeout=None, propagate=True, interval=0.5, callback=None, no_ack=True, on_message=None, on_interval=None, disable_sync_subtasks=True)
-
Оптимизированная для бэкенда версия
join().Добавлено в версии 2.2.
Обратите внимание, что этот метод не поддерживает сбор результатов задач разных типов с использованием разных бэкендов.
В настоящее время этот метод поддерживается только бэкендами результатов amqp, Redis и cache.
- maybe_reraise(callback=None, propagate=True)
- maybe_throw(callback=None, propagate=True)
- ready()
-
Все ли задачи завершились? (успешно или с ошибкой).
- Возвращает:
-
true, если все задачи были выполнены.
- Тип возвращаемого значения:
- remove(result)
-
Удалить результат из множества; он должен быть его элементом.
- Вызывает исключения:
-
KeyError – если результат не является элементом множества.
- results=None
-
Список результатов в этом множестве.
- revoke(connection=None, terminate=False, signal=None, wait=False, timeout=None)
-
Отправить всем рабочим процессам сигнал отмены для всех задач множества.
- Параметры:
-
terminate (bool) – Также завершить процесс, выполняющий задачу в данный момент (если такой есть).
signal (str) – Имя сигнала, отправляемого процессу при завершении. По умолчанию — TERM.
wait (bool) – Ожидать ответов от рабочего процесса. Аргумент
timeoutзадаёт количество секунд ожидания. По умолчанию отключено.timeout (float) – Время ожидания ответов в секундах, если включён аргумент
wait.
- successful()
-
Возвращает true, если все задачи выполнены успешно.
- Возвращает:
-
- true, если все задачи завершились
-
успешно (т. е. не вызвали исключение).
- Тип возвращаемого значения:
- propertysupports_native_join
- then(callback, on_error=None, weak=False)
- update(results)
-
Добавить элементы из итерируемого объекта с результатами.
- waiting()
-
Возвращает true, если какая-либо задача не завершена.
- Возвращает:
-
- true, если одна из задач всё ещё
-
ожидает выполнения.
- Тип возвращаемого значения:
- celery.result.result_from_tuple(r, app=None)
-
Десериализовать результат из кортежа.
Copyright © 2017-2026 Asif Saif Uddin, core team & contributors. All rights reserved.
Celery is licensed under The BSD License (3 Clause, also known as the new BSD license). The license is an OSI approved Open Source license and is GPL-compatible.
https://docs.celeryq.dev/en/stable/reference/celery.result.html