Spec-Zone.ru › Celery

celery.utils.dispatch.signal

Реализация шаблона «Наблюдатель».

classcelery.utils.dispatch.signal.Signal(providing_args=None, use_caching=False, name=None)

Создать новый сигнал.

Аргументы-ключевые слова:
  • providing_args (List) – Список аргументов, которые этот сигнал может передать при вызове send().

  • use_caching (bool) – Включить кэширование обработчиков.

  • name (str) – Имя сигнала, используемое для отладки.

connect(*args, **kwargs)

Подключить обработчик к отправителю сигнала.

Параметры:
  • receiver (Callable) –

    Функция или метод экземпляра, который будет получать сигналы. Обработчики должны быть хешируемыми объектами.

    Если weak равен True, обработчик должен поддерживать слабые ссылки.

    Обработчики должны принимать аргументы-ключевые слова.

    Если у обработчиков есть атрибут dispatch_uid, обработчик не будет добавлен, если уже существует другой обработчик с таким же значением dispatch_uid.

  • sender (Any) – Отправитель, на сигналы которого должен реагировать обработчик. Должен быть объектом Python или None, чтобы получать события от любого отправителя.

  • weak (bool) – Использовать ли слабые ссылки на обработчик. По умолчанию модуль пытается использовать слабые ссылки на объекты-обработчики. Если этот параметр имеет значение false, будут использоваться сильные ссылки.

  • dispatch_uid (Hashable) – Идентификатор, используемый для уникального обозначения конкретного экземпляра обработчика. Обычно это строка, но им может быть любой хешируемый объект.

  • retry (bool) – Если обработчик сигнала вызывает исключение (например, ConnectionError), вызовы обработчика будут повторяться, пока он не выполнится успешно. Будет сохранена сильная ссылка на обработчик, а параметр weak будет проигнорирован.

disconnect(receiver=None, sender=None, weak=None, dispatch_uid=None)

Отключить обработчик от отправителя сигнала.

При использовании слабых ссылок вызывать disconnect необязательно. Обработчик будет автоматически удален из диспетчеризации.

Параметры:
  • receiver (Callable) – Зарегистрированный обработчик, который нужно отключить. Может быть не указан, если задан dispatch_uid.

  • sender (Any) – Зарегистрированный отправитель, которого нужно отключить.

  • weak (bool) – Состояние слабой ссылки, которую нужно отключить.

  • dispatch_uid (Hashable) – Уникальный идентификатор обработчика, который нужно отключить.

has_listeners(sender=None)
receivers=None

Содержит словарь соответствий {receiverkey (id): weakref(receiver)}.

send(sender, **named)

Отправить сигнал от отправителя всем подключенным обработчикам.

Если какой-либо обработчик вызывает ошибку, исключение возвращается как соответствующий ответ. (Это отличается от «send» в сигналах Django. В Celery методы «send» и «send_robust» работают одинаково.)

Параметры:
  • sender (Any) – Отправитель сигнала. Конкретный объект или None.

  • **named (Any) – Именованные аргументы, которые будут переданы обработчикам.

Возвращает:

список пар кортежей: [(receiver, response), … ].

Тип возвращаемого значения:

List

send_robust(sender, **named)

Отправить сигнал от отправителя всем подключенным обработчикам.

Если какой-либо обработчик вызывает ошибку, исключение возвращается как соответствующий ответ. (Это отличается от «send» в сигналах Django. В Celery методы «send» и «send_robust» работают одинаково.)

Параметры:
  • sender (Any) – Отправитель сигнала. Конкретный объект или None.

  • **named (Any) – Именованные аргументы, которые будут переданы обработчикам.

Возвращает:

список пар кортежей: [(receiver, response), … ].

Тип возвращаемого значения:

List

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/internals/reference/celery.utils.dispatch.signal.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API