Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Message Queue
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
    • Обзор
      • ChangeMessageVisibility
      • ChangeMessageVisibilityBatch
      • DeleteMessage
      • DeleteMessageBatch
      • ReceiveMessage
      • SendMessage
      • SendMessageBatch
    • Стандартные ошибки
  • Метрики Monitoring
  • Публичные материалы
  • Вопросы и ответы
  • Обучающие курсы

В этой статье:

  • Запрос
  • Параметры запроса
  • Ответ
  • Поля успешного ответа
  • Ошибки ReceiveMessage
  • Пример запроса
  • Пример ответа
  1. Справочник API
  2. Message
  3. ReceiveMessage

ReceiveMessage

Статья создана
Yandex Cloud
Обновлена 29 августа 2024 г.
  • Запрос
    • Параметры запроса
  • Ответ
    • Поля успешного ответа
    • Ошибки ReceiveMessage
  • Пример запроса
  • Пример ответа

Метод для приема от одного до десяти сообщений из указанной очереди. С помощью параметра WaitTimeSeconds выполняются long-polling запросы.

Стандартное поведение метода — это short polling, при котором делается попытка получения сообщений из одного шарда очереди, выбранного при вызове ReceiveMessage. Если в очереди немного сообщений, будет возвращено меньшее количество сообщений, чем указано в параметре MaxNumberOfMessages. Если в очереди слишком мало сообщений, то в ответе на запрос может не вернуться ни одного сообщения, если они не попали в шард очереди. Если ни одно сообщение не удалось получить, повторите запрос.

Если при получении сообщений из пустой очереди в нее поступит новое сообщений, оно будет получено с задержкой на время одной попытки получения.

Для каждого из полученных сообщений возвращаются следующие параметры:

  • MessageId — идентификатор сообщения.
  • ReceiptHandle — идентификатор для удаления полученного сообщения или изменения его таймаута видимости.
  • Body — тело сообщения.
  • MD5OfBody — MD5-хэш тела сообщения.
  • Attributes — набор атрибутов сообщения, указывающих время отправки, количество приемов сообщения, время отправки.

При вызове метода можно передать параметр VisibilityTimeout, который установит получаемым сообщениям указанный таймаут видимости. Если параметр не задан, сообщения получат таймаут видимости, указанный для очереди по умолчанию.

При получении сообщений из очереди FIFO, из одной группы сообщений за один вызов ReceiveMessage будет принято только одно сообщение.

Запрос

Параметры запроса

Параметр Тип Обязательный
параметр
Описание
MaxNumberOfMessages string Нет Максимальное количество сообщений, которое будет принято. Может быть принято меньшее количество сообщений, чем указано в этом параметре, но никогда не будет приниматься больше указанного. Возможные значения: от 1 до 10. Значение по умолчанию: 1.
MessageAttributeName.N array Нет Массив имен атрибутов сообщения, которые требуется вернуть в ответе на запрос. Имя может содержать буквы и цифры, а также дефисы, подчеркивания и точки. Имена атрибутов чувствительны к регистру и уникальны в пределах одного сообщения. Имена атрибутов не могут начинаться или оканчиваться точками. Имена атрибутов не должны содержать несколько точек подряд. Максимальная длина имени атрибута — 256 символов. Можно получить все атрибуты сразу, указав слово All или .* в запросе. Также можно использовать префиксы для получения нужных атрибутов.
QueueUrl string Да URL очереди, в которой находится сообщение.
ReceiveRequestAttemptId string Нет Идентификатор для повтора попытки получения сообщений из FIFO-очереди. Подробнее см. Дедупликация.
VisibilityTimeout string Нет Таймаут видимости получаемого сообщения.
WaitTimeSeconds string Нет Время ожидания доставки сообщения в очередь в секундах. Если в очереди появятся сообщения, вызов будет сделан раньше, чем указано в WaitTimeSeconds. Если сообщения не появились после истечения WaitTimeSeconds будет возвращен пустой список.

Атрибуты

Список имен атрибутов сообщения. Атрибуты передаются в параметре Attributes.

Attribute.N.Name (атрибут)
Attribute.N.Value (значение атрибута)
Атрибут Описание
All Все значения.
ApproximateFirstReceiveTimestamp Время получения сообщения из очереди.
ApproximateReceiveCount Число получений сообщения из очереди без его удаления.
SenderId Идентификатор отправителя — субъекта IAM.
SentTimestamp Время отправки сообщения в очередь.
MessageDeduplicationId Идентификатор токена для дедупликации сообщений, используется в очередях FIFO. Каждое сообщение должно иметь уникальный MessageDeduplicationId. Если MessageDeduplicationId не указан, отправка сообщения в очередь не будет выполнена. Максимальная длина — 128 символов. Разрешено использование цифр, больших и маленьких латинских букв и знаков пунктуации. Подробнее см. Дедупликация.
MessageGroupId Идентификатор группы сообщений, используется в очередях FIFO. Подробнее см. Дедупликация.
SequenceNumber Номер сообщения, используется в очередях FIFO в рамках группы сообщений с одинаковым MessageGroupId.

Ответ

Поля успешного ответа

Поле Тип Описание
Message array Массив Message.

Ошибки ReceiveMessage

Перечень общих для всех методов ошибок смотрите в разделе Стандартные ошибки.

Код HTTP Идентификатор ошибки Описание
403 OverLimit Операция превысила один из установленных лимитов.

Пример запроса

Action=ReceiveMessage
&Version=2012-11-05
&QueueUrl=https://message-queue.api.cloud.yandex.net/b1g8ad42m6he********/dj6000000000********/sample-queue
&AttributeName.1=All
&MessageAttributeName.1=All
&VisibilityTimeout=15

Подробнее о формировании запросов см. в разделе Общий вид запросов к API.

Пример ответа

<ReceiveMessageResponse>
    <ReceiveMessageResult>
        <Message>
            <MessageId>cddcbbe4-b0571f5c-d7b94ce4***-*****</MessageId>
            <ReceiptHandle>EAEgrOGOhogtKAA</ReceiptHandle>
            <MD5OfBody>3e25960a79dbc69b674cd4ec********</MD5OfBody>
            <Body>Hello world</Body>
            <Attribute>
                <Name>ApproximateFirstReceiveTimestamp</Name>
                <Value>1548348534956</Value>
            </Attribute>
            <Attribute>
                <Name>ApproximateReceiveCount</Name>
                <Value>1</Value>
            </Attribute>
            <Attribute>
                <Name>SentTimestamp</Name>
                <Value>1548347797419</Value>
            </Attribute>
        </Message>
    </ReceiveMessageResult>
    <ResponseMetadata>
        <RequestId>213c792a-2afa2234-4759dbc3-e5b8ef8-fc90fde14cdc1371b11d6453********</RequestId>
    </ResponseMetadata>
</ReceiveMessageResponse>

Была ли статья полезна?

Предыдущая
DeleteMessageBatch
Следующая
SendMessage
Проект Яндекса
© 2025 ООО «Яндекс.Облако»