1. Добавлена возможность сжимать отправляемое сообщение. Поддерживаемые алгоритмы: zstd и gzip. Если указано сжатие, то при создании сообщения в свойства сообщения будет добавлено свойство content_encoding равное указанному алгоритму сжатия. Далее на основании этого заголовка будет реализована распаковка (см. пункт ниже). Пример в обработке ОтправкаПолучениеСжатыхСообщений в демо конфигурации.
НастройкиСжатия = КлиентRMQ.НастройкиСжатия("zstd");
Ответ = КлиентRMQ.ОпубликоватьСообщение(Канал, Данные, "nomra", КлиентRMQ.Exchange_direct(),,,,,НастройкиСжатия);Для создание настроек нужно использовать метод КлиентRMQ.НастройкиСжатия() с указанием алгоритма сжатия и уровня сжатия. Далее настройки нужно передать в метод КлиентRMQ.ОпубликоватьСообщение()
2. Добавлена функция автоматической распаковки для сжатого сообщения. Поддерживается zstd и gzip (лучше использовать zstd, так как он намного эффективнее чем gzip ).
Если у сообщения в Properties есть свойство content_encoding равное gzip или zstd, то содержимое будет автоматически распаковано на уровне компоненты. Пример в обработке ОтправкаПолучениеСжатыхСообщений в демо конфигурации.
3. Добавлена возможность логирования для отладки работы компоненты. Для этого нужно в метод КлиентRMQ.ЗаписьЛога("C:\tmp\лог_rmq.txt") передать путь к файлу лога.
4. Доработки по оптимизации многопоточной работы (параллельный запуск нескольких rmq клиентов)
5. Исправлено аварийное завершение в файловом варианте (иногда из-за не завершенного рантайма rust в файловом варианте могло был аварийное завершение работы компоненты)
6. Добавлена возможность пинговать компоненту, когда она находится в режиме ожидания, в фоновом задании, для контроля здоровья.
Общая логика: через регл задание отправить "ping" и обрабатывать сервисный ответ "pong" в цикле получения сообщение из очереди (pong приходит как сообщение, только с типом "Сервисное")
см. реализации регл. задания МониторингRMQ и фрагмента кода "Если КлиентRMQ.ЭтоОтветНаПинг(ДанныеСообщения) Тогда" в общем модуле ОбработкаСообщенийВФоне.ОжиданиеИОбработкаСообщенийНоменклатуры() демо конфигурации.
Важно! при использовании таймаута, нужно учитывать что ping будет восприниматься как получение сообщение, поэтому таймаут после получения сообщения из очереди ping будет начинать отсчет сначала. То есть, если ping делать чаще чем таймаут, то тамаут никогда не сработает. ping должен быть реже чем интервал таймаута.
🔗 Скачать
🔗 Договор оферты (для платной версии)
🔗 Лендинг