SkillAgentSearch skills...

PinkRabbitMQ

Внешняя Native API компонента для взаимодействия с RabbitMQ из 1С

Install / Use

/learn @BITERP/PinkRabbitMQ
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

В БИТ:ERP открыты вакансии разработчиков 1С, присоединяйся к нашей команде!

PinkRabbitMQ library

License GitHub release

Sonar bugs Sonar code smells Sonar dublications Sonar lines of code Sonar technical debt Sonar vulnerables

Введение

Внешняя Native API компонента для 1C 8.3, которая реализует методы для работы с сервером Rabbit MQ через TCP IP протокол. Компонента поддерживается командой разработки БИТ.MDT (Мобильный терминал данных), БИТ.Адаптер, БИТ.IIoT (Промышленный интернет вещей) и используется в наших продуктах. Ид компоненты - PinkRabbitMQ. Компонента поставляется для 32 и 64 битной платформы 1С.

Поддерживаемые системы

  • Windows 32 и 64 бит
  • Linux 64 бит

API

Компонента реализует протокол AMQP 0.9.1. Компонента имеет ряд методов для работы из встроенного языка 1С. Параметры с тегом [НЕ РЕАЛИЗОВАНО] имеют пустую реализацию, но передавать их все равно требуется. Параметры с тегом [НЕОБЯЗАТЕЛЬНЫЙ] можно не передавать.

Список свойств комоненты, связанных с сообщением:

  • correlationId - строка, чтение и запись
  • messageId - строка, чтение и запись
  • Type - строка, чтение и запись
  • AppId - строка, чтение и запись
  • ContentEncoding - строка, чтение и запись
  • ContentType - строка, чтение и запись
  • UserId - строка, чтение и запись. В данное свойство разрешается передавать только логин пользователя, использованный для установки соединения
  • ClusterId - строка, чтение и запись
  • Expiration - число строкой, чтение и запись. Передача строки, отличной от числовой, приведет к вызову исключения.
  • ReplyTo - строка, чтение и запись

Эти свойства передаются в качестве метаданных вместе с сообщением в RabbitMQ. Их можно прочитать также на стороне получателя - они реинициализируется в момент вызова basicConsumeMessage().

Список прочих свойств:

  • Version - версия компоненты, только чтение

Список методов:

<b>Connect</b> - устанавливает соединение с сервером RabbitMQ. Таймаут - 5 секунд. Если в течение этого времени сервер недоступен, а также указаны неверные логин, пароль или vhost, то будет возвращена ошибка, которая может быть получена через метод GetLastError.

Параметры:

  • host - Строка - Адрес сервера RabbitMQ
  • port - Число - Порт работы через tcp (обычно 5672 для amqp и 5671 для amqps)
  • login - Строка - Имя пользователя
  • pwd - Строка - Пароль пользователя
  • vhost - Строка - Vhost пользователя
  • pingRate - Число - [НЕ РЕАЛИЗОВАНО][НЕОБЯЗАТЕЛЬНЫЙ]. Частота пульса
  • secure - Булево - [НЕОБЯЗАТЕЛЬНЫЙ] использовать защищенное соединение по протоколу TLS 1.2. По-умолчанию Ложь. Если Истина, то нужно также передавать соответствующий порт для amqps соединения
  • timeout - Число - [НЕОБЯЗАТЕЛЬНЫЙ] время ожидания ответа на команды от сервера в секундах. По-умолчанию 5

<b>DeclareExchange</b> - Объявить точку обмена

Параметры:

  • name - Строка - Имя exchange
  • type - Строка - Тип точки обмена. Поддерживаются "direct", "fanout", "topic"
  • onlyCheckIfExists - Булево - Не создавать новую, выбросить исключение, если такой точки нет.
  • durable - Булево - Сохранять сообщения на диске на случай рестарта RMQ (не рекомендуется)
  • autodelete - Булево - Удалить после того, как от точки будут отвязаны все очереди.
  • arguments - Строка - [НЕОБЯЗАТЕЛЬНЫЙ] произвольные свойства в формате Json-объект. Пример: {"x-message-ttl": 60000}.

<b>DeleteExchange</b> - Удалить точку обмена

Параметры:

  • name - Строка- Имя точки обмена.
  • ifunused - Булево - Удаление будет выполнено, только если точка обмена не используется.

<b>DeclareQueue</b> - Объявить очередь

Параметры:

  • name - Строка - Имя объявляемой очереди.
  • onlyCheckIfExists - Булево - Не создавать очередь с таким именем, использовать существующую
  • save - Булево - Кешировать сообщения на диске, на случай падения RMQ.
  • exclusive - Булево - Только текущее соединение может иметь доступ к этой очереди.
  • autodelete - Булево - Удалить очередь если к ней был подключен, а затем отключен читающий клиент.
  • maxPriority - Число - [НЕОБЯЗАТЕЛЬНЫЙ] устанавливает максимальное значение приоритета, которое может быть затем установлено для отправляемых сообщений через метод setPriority. Если 0 - то приоритет не используется. По-умолчанию 0.
  • arguments - Строка - [НЕОБЯЗАТЕЛЬНЫЙ] произвольные свойства в формате Json-объект. Пример: {"x-message-ttl": 60000}. Документация: https://www.rabbitmq.com/queues.html#optional-arguments

Возвращаемое значение:

  • Имя очереди, заданное явно в 1-м параметре.

<b>DeleteQueue</b> - Удаляет очередь с сервера

Параметры:

  • name - Строка - Имя очереди
  • onlyIfIdle - Булево - Удаление будет выполнено, только если очередь не используется
  • onlyIfEmpty - Булево - Удаление будет выполнено, только если очередь пуста

<b>BindQueue</b> - Установить связь очереди. Создает маршрут от точки обмена до очереди.

Параметры:

  • queue - Строка - Имя очереди
  • exchange - Строка - Имя точки обмена
  • routingKey - Строка - Rлюч маршрутизации.
  • arguments - Строка - [НЕОБЯЗАТЕЛЬНЫЙ] произвольные свойства в формате Json-объект. Пример: {"x-match": "all"}.

<b>UnbindQueue</b> - Отсоединяет очередь от точки обмена.

Параметры:

  • queue - Строка - Имя очереди
  • exchange - Строка - Имя точки обмена
  • routingKey - Строка - Rлюч маршрутизации.

<b>BasicPublish</b> - Отправить сообщение

Параметры:

  • exchange - Строка - Имя точки в которую отправляется сообщение
  • routingKey - Строка - Ключ маршрутизации (см. руководство RMQ)
  • message - Строка - Тело сообщения
  • livingTime - Число - [НЕ РЕАЛИЗОВАНО] Время жизни сообщения в миллисекундах
  • persist - Булево - Сбрасывать сообщение на диск
  • arguments - Строка - [НЕОБЯЗАТЕЛЬНЫЙ] произвольные свойства в формате Json-объект. Пример: {"x-message-ttl": 60000}.

<b>BasicAck</b> Отсылает серверу подтверждение (ack), что сообщение обработано и его можно удалить. Подтвердить можно любое прочитанное сообщение.

Параметры:

  • messageTag - число - тег сообщения, который возвращается в параметре метода BasicConsumeMessage

<b>BasicReject</b> - Отказывается от последнего полученного сообщения. Работает по принципу Ack, но в обратную сторону.

Параметры:

  • messageTag - число - тег сообщения, который возвращается в параметре метода BasicConsumeMessage

<b>BasicConsume</b> - Начать чтение. Регистрирует потребителя сообщений для очереди.

Параметры:

  • queue - Строка - Очередь из которой будем читать сообщения.
  • consumerId - Строка - [НЕ РЕАЛИЗОВАНО] имя потребителя. Если не задан, то имя потребителя сгенерирует сервер и вернет из метода
  • noConfirm - Булево - не ждать подтверждения обработки. Сообщения будут удалены из очереди сразу после отправки на клиента.
  • exclusive - Булево - монопольно захватить очередь
  • selectSize - Число - количество единовременно считываемых сообщений из очереди в кеш компоненты. Оптимизационный параметр, который влияет на скорость забора сообщений. Рекомендуемый диапазон 100-1000. Нежелательно устанавливать слишком высокие значения, т.к. чтение большого числа накопленных сообщений в очереди может спровоцировать нехватку памяти на клиенте 1С и падение компоненты без вызова исключения.
  • arguments - Строка - [НЕОБЯЗАТЕЛЬНЫЙ] произвольные свойства в формате Json-объект. Пример: {"x-stream-offset": "first"}.

Возвращаемое значение:

  • Строка. Имя потребителя, сгенерированное сервером или переданное в параметре ИмяПотребителя.

<b>BasicConsumeMessage</b> - Получить сообщение

Параметры:

  • consumerId - Строка - [НЕ РЕАЛИЗОВАНО] Имя зарегистрированного потребителя
  • outdata - Строка - Выходной параметр. Тело сообщения.
  • messageTag - Число - Выходной параметр. Тег сообщения для подтверждения через метод BasicAck
  • timeout - Число - Таймаут ожидания сообщения в миллисекундах. Не рекомендуется ставить параметр слшком низким, т.к. сообщение просто может не успеть прийти из очереди. Рекомендуемый диапазон 3000-60000.

Возвращаемое значение:

  • Булево. Истина, если из очереди прочитано очередное сообщение. Ложь, если очередь пустая.

<b>BasicCancel</b> - Закрывает канал для чтения сообщений

Параметры:

  • channelId - Строка - Имя созданного ранее потребителя.

<b>SetPriority</b> -устанавливает приоритет для всех отправляемых сообщений. Если значение равно 0, то приоритет не будет установлен.

Параметры:

  • priority - Число - значение в диапазоне разрешенного приоритета для очереди, но не более 255.

<b>GetPriority</b> - получает приоритет для последнего считанного сообщения. Имеет смысл вызывать внутри цикла чтения сообщений методом BasicConsumeMessage

Параметры: Отсутствуют

Возвращаемое значение:

  • числовое значение приоритета от 0 до 255 для сообщения

<b>GetRou

Related Skills

View on GitHub
GitHub Stars297
CategoryDevelopment
Updated1h ago
Forks116

Languages

C

Security Score

100/100

Audited on Apr 7, 2026

No findings