BITERP / PinkRabbitMQ

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

Не вызывать исключения внутри цикла чтения сообщений. #54

Open goleaff opened 3 years ago

goleaff commented 3 years ago

Если делать так

Клиент = Новый("AddIn.BITERP.PinkRabbitMQ"); ВыходнойПараметр = "";

Попытка Пока Клиент.BasicConsumeMessage(Потребитель, ВыходнойПараметр, Таймаут) Цикл // Работа с компонентой Если Клиент.CorrelationId <> "МОЙ_ИД" Тогда ВызватьИсключение "Ошибка чтения свойств!"; // ТАК ДЕЛАТЬ СТРОГО НЕ РЕКОМЕНДУЕТСЯ!!! КонецЕсли; ВыходнойПараметр = ""; КонецЦикла;

Исключение Клиент = неопределено; КонецПопытки

Это будет корректно? Вызывать исключение в попытке?

ripreal commented 3 years ago

Нет, будем потеряна память из-за того, что переменная ВыходнойПараметр не очищается. Кроме того возможно будет потеряна память на кеше считанных соообщений, которые хранятся внутри компоненты. Размер кеша считанных сообщений зависит от параметра selectSize метода BasicConsume