TGViewer
Tools1c Tools1c @tools1c · 89 subscribers
Post #26 347
RabbitMQ вер. 0.9.92

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 должен быть реже чем интервал таймаута.

🔗 Скачать
🔗 Договор оферты (для платной версии)
🔗 Лендинг
  • 🔥 3
More from @tools1c
  1. Apr 6, 2026RabbitMQ вер. 1.0.2 Исправлена генерация id объектов для потокобезопасности (могли быть ду…
  2. Apr 2, 2026RabbitMQ вер. 1.0.1 Доработка для аргументов очереди. Не передавались аргументы с пустым з…
  3. Aug 12, 2025RabbitMQ вер. 1.0.0 Обновлена базовая библиотека для работы с RMQ (которую использует комп…
  4. Jul 12, 2025Добрый день! В последних версия платформы разработчики 1С что-то поломали в механизме внеш…
  5. Jan 18, 20251С и RabbitMQ вер. 0.9.91 Добавлена возможность указывать аргументы для очередей и потреби…
  6. Dec 24, 20241С и RabbitMQ вер. 0.9.90 Добавлен метод ОтклонитьСообщение() и возможность чтения заголов…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →