Правила обработки очередей

Правило обработки очередей включает в себя правило размещения, которое диктует порядок распределения сообщений по очередям, и правило извлечения сообщений из очередей. Правила могут быть назначены как внешним системам, так и сервисам. Правила действуют для выбранных систем или сервисов, при этом информация об очередях будет отображаться в Центре мониторинга и администрирования и обновляться в режиме реального времени.

У каждой внешней системы или сервиса создается собственная очередь. При большом потоке разнотипных сообщений может возникнуть необходимость отправки определенного типа сообщений в первую очередь для их ускоренной доставки. Для реализации этого процесса используются правила, которые включают в себя:

  • Список очередей, которые будут использоваться вместо очереди, созданной по умолчанию.

  • Правило размещения сообщений.

  • Правило извлечения сообщений.

Создание правила

Для добавления нового правила перейдите в раздел Обработка данных → Правила обработки очередей и нажмите на кнопку + в рабочей области.

Система откроет новое окно создания правила. Окно содержит три вкладки: Основные, Правило размещения, Правило извлечения.

../../_images/queue_processing_rules_1.png

На вкладке Основные заполните следующие поля:

  • Название: произвольное название правила.

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

  • Комментарий: описание правила, поддерживается многострочный ввод.

Список очередей задается на вкладке Основные путем нажатия на кнопку Добавить поле. Названия очередей будут использоваться при описании правил размещения и извлечения.

Внимание

Названия очередей не могут состоять только из чисел.

../../_images/queue_processing_rules_2.png

На вкладке Правило размещения с помощью кода C# настраивается правило распределения поступающих сообщений по очередям.

На вкладке Правило извлечения с помощью кода C# настраивается правило приоритетности, на основании которого платформа будет выбирать, из какой очереди необходимо взять следующий блок сообщений для обработки.

Подробная информация о настройках правил с помощью кода C# доступна в разделе Библиотеки разработки.

Схема работы правила

Если на сервер поступает сообщение, то перед его отправкой на какой-либо модуль с включенной стратегией система проверяет правило размещения, согласно которому сообщение будет распределено в одну из очередей модуля:

  • Если правило размещения позволяет определить очередь стратегии, в которую необходимо разместить сообщение, то оно помещается в эту очередь.

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

Таким образом очереди модуля наполняются поступающими сообщениями.

Когда сервер готов приступить к обработке сообщений какого-либо модуля с включенной стратегией, система на основании правила извлечения определяет, из какой очереди модуля будут извлечены сообщения:

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

  • Если после выполнения правила извлечения определить очередь не удалось, то система проверяет наполненность очередей стратегии сверху вниз. Сообщения будут извлечены из первой непустой очереди стратегии. То есть верхняя очередь в списке имеет высший приоритет для извлечения.

  • Если все очереди стратегии пусты, то система обрабатывает сообщения, которые находятся в очереди модуля по умолчанию.