rabbitmq – Извлечение сообщений из очереди RabbitMQ AMQP/AMQPS
Новое в версии 2.8.
Краткое описание
- Этот запрос использует базовый метод получения для извлечения всех или ограниченного числа
count, сообщений из очереди RabbitMQ.
Требования
Ниже перечислены требования к локальному мастер-узлу, на котором выполняется этот запрос.
- Пакет python pika https://pypi.org/project/pika/.
Параметры
| Параметр | Варианты/Значения по умолчанию | Настройка | Комментарии |
|---|---|---|---|
| count - | Количество сообщений для извлечения из очереди. Если не задано, по умолчанию извлекаются все сообщения из очереди. | ||
| queue - / обязательно | Очередь для извлечения сообщений. | ||
| url - / обязательно | Строка подключения URI для подключения к серверу RabbitMQ AMQP/AMQPS. Для получения дополнительной информации обратитесь к спецификации URI https://www.rabbitmq.com/uri-spec.html. |
Примечания
Примечание
- Этот запрос реализует BlockingChannel.basic_get для извлечения сообщений с сервера RabbitMQ.
- После извлечения сообщения с сервера, получение сообщения подтверждается, и сообщение на сервере удаляется.
- Pika — это чисто-Python реализация протокола AMQP 0-9-1, которая старается оставаться достаточно независимой от библиотеки поддержки сетевого уровня.
- Дополнительную информацию о pika можно найти по адресу https://pika.readthedocs.io/en/stable/.
- Этот плагин протестирован на RabbitMQ. Другие серверы, основанные на протоколе AMQP 0.9.1, могут работать, но не тестировались/не гарантируются.
- Присвоение возвращаемых сообщений переменной под
varsможет привести к непредсказуемым результатам, поскольку запрос оценивается каждый раз при ссылке на переменную. - В настоящее время этот плагин обрабатывает только текстовые сообщения из очереди. При извлечении двоичных данных могут возникнуть непредсказуемые результаты.
Примеры
- name: Get all messages off a queue
debug:
msg: "{{ lookup('rabbitmq', url='amqp://guest:guest@192.168.0.10:5672/%2F', queue='hello') }}"
# If you are intending on using the returned messages as a variable in more than
# one task (eg. debug, template), it is recommended to set_fact.
- name: Get 2 messages off a queue and set a fact for re-use
set_fact:
messages: "{{ lookup('rabbitmq', url='amqp://guest:guest@192.168.0.10:5672/%2F', queue='hello', count=2) }}"
- name: Dump out contents of the messages
debug:
var: messages
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие поля уникальны для этого запроса:
| Ключ | Возвращаемое значение | Описание | |
|---|---|---|---|
| _list список | Список словарей с ключами и значениями из очереди. | ||
| content_type строка | Тип содержимого сообщения в очереди. | ||
| delivery_mode строка | Режим доставки сообщения в очереди. | ||
| delivery_tag строка | Идентификатор доставки сообщения в очереди. | ||
| exchange строка | Обмен, из которого пришло сообщение. | ||
| headers словарь | Заголовки сообщения, возвращённого из очереди. | ||
| json словарь | Если в content_type указано application/json, json будет загружен в переменные. | ||
| message_count строка | Количество сообщений в очереди. | ||
| msg строка | Содержимое сообщения. | ||
| redelivered логическое значение | Флаг повторной доставки. True, если сообщение уже доставлялось ранее. | ||
| routing_key строка | Ключ маршрутизации сообщения в очереди. | ||
Статус
- Не гарантируется обратная совместимость этого запроса. [превью]
- Этот запрос поддерживается сообществом Ansible. [сообщество]
Авторы
- John Imison <@Im0>
Подсказка
Если вы заметите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
Подсказка
Элементы конфигурации для каждого типа имеют порядок приоритетов от низкого к высокому. Например, переменная, расположенная ниже в списке, переопределит переменную, расположенную выше.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.8/plugins/lookup/rabbitmq.html