Правила обработки очередей
Правило обработки очередей включает в себя правило размещения, которое диктует порядок распределения сообщений по очередям, и правило извлечения сообщений из очередей. Правила могут быть назначены как внешним системам, так и сервисам. Правила действуют для выбранных систем или сервисов, при этом информация об очередях будет отображаться в Центре мониторинга и администрирования и обновляться в режиме реального времени.
У каждой внешней системы или сервиса создается собственная очередь. При большом потоке разнотипных сообщений может возникнуть необходимость отправки определенного типа сообщений в первую очередь для их ускоренной доставки. Для реализации этого процесса используются правила, которые включают в себя:
Список очередей, которые будут использоваться вместо очереди, созданной по умолчанию.
Правило размещения сообщений.
Правило извлечения сообщений.
Создание правила
Для добавления нового правила перейдите в раздел Обработка данных → Правила обработки очередей и нажмите на кнопку + в рабочей области.
Система откроет новое окно создания правила. Окно содержит три вкладки: Основные, Правило размещения, Правило извлечения.
На вкладке Основные заполните следующие поля:
Название: произвольное название правила.
Имя: уникальное имя правила. При присвоении имени необходимо учитывать перечень зарезервированных имен.
Комментарий: описание правила, поддерживается многострочный ввод.
Список очередей задается на вкладке Основные путем нажатия на кнопку Добавить поле. Названия очередей будут использоваться при описании правил размещения и извлечения.
Внимание
Названия очередей не могут состоять только из чисел.
На вкладке Правило размещения с помощью кода C# настраивается правило распределения поступающих сообщений по очередям.
На вкладке Правило извлечения с помощью кода C# настраивается правило приоритетности, на основании которого платформа будет выбирать, из какой очереди необходимо взять следующий блок сообщений для обработки.
Подробная информация о настройках правил с помощью кода C# доступна в разделе Библиотеки разработки.
Схема работы правила
Если на сервер поступает сообщение, то перед его отправкой на какой-либо модуль с включенной стратегией система проверяет правило размещения, согласно которому сообщение будет распределено в одну из очередей модуля:
Если правило размещения позволяет определить очередь стратегии, в которую необходимо разместить сообщение, то оно помещается в эту очередь.
Если после выполнения правила размещения определить очередь не удалось, то сообщение размещается в очередь модуля по умолчанию.
Таким образом очереди модуля наполняются поступающими сообщениями.
Когда сервер готов приступить к обработке сообщений какого-либо модуля с включенной стратегией, система на основании правила извлечения определяет, из какой очереди модуля будут извлечены сообщения:
Если правило извлечения позволяет определить очередь, из которой необходимо получить сообщения, то система извлекает из этой очереди блок сообщений для их обработки.
Если после выполнения правила извлечения определить очередь не удалось, то система проверяет наполненность очередей стратегии сверху вниз. Сообщения будут извлечены из первой непустой очереди стратегии. То есть верхняя очередь в списке имеет высший приоритет для извлечения.
Если все очереди стратегии пусты, то система обрабатывает сообщения, которые находятся в очереди модуля по умолчанию.