BITERP / PinkRabbitMQ

Внешняя Native API компонента для взаимодействия с RabbitMQ из 1С
MIT License
264 stars 107 forks source link

Как узнать ответ Кролика на отправку сообщения в очередь? #91

Closed johnnyshut closed 1 year ago

johnnyshut commented 1 year ago

Правильно ли я понимаю, что используя метод "BasicPublish - Отправить сообщение" я не могу проверить на стороне 1С отправилось ли сообщения или нет? Например: я указал в отправке не существующий routingKey, в таком случаи в 1С я не получу ничего в ответ и метод не упадет в исключение. Очередь я не создаю в 1С. Как тогда отслеживать отправку?

kuzyara commented 1 year ago

Проверять наличие routingKey?

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

Заведите единую точку внесения изменений (репозиторий) для управления своим кроликом через код 1с - тогда ваша проблема сама исчезнет.

johnnyshut commented 1 year ago

@kuzyara звучит как "Купите БИТ Адаптер". У нас управление RMQ не из 1С происходит. Такой вариант не подойдет. Да и странное решение, ведь сишная библиотека возвращает эти данные.

kuzyara commented 1 year ago

Вот как это реализовано в dotnet: https://stackoverflow.com/questions/72535226/how-to-set-mandatory-flag-on-rabbitmq-message

Если бы это свойство было реализовано и в нашей компоненте, то его использование выглядело бы так:

Клиент.mandatory = true;
Клиент.BasicPublish("exchangeName","routingKey", ТелоСообщения);

https://stackoverflow.com/questions/65134452/how-to-handle-unknown-invalid-binding-routing-key-values-in-rabbitmq

А пока никак получается