BITERP / PinkRabbitMQ

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

BasicConsumeMessage ожидает сообщение ровно столько, сколько установлен timeout #78

Open AsseylumVA opened 2 years ago

AsseylumVA commented 2 years ago
Клиент  = Новый("AddIn.BITERP.PinkRabbitMQ");
TimeOut = 50000;

Попытка
    Клиент.Connect(RabbitMQServerURL, RabbitMQPort, RabbitMQLogin, RabbitMQPassword, RabbitMQVHost,,,10);
    Клиент.DeclareQueue(ИмяОчереди, Ложь, Истина, Ложь, Ложь);

    Потребитель = Клиент.BasicConsume(ИмяОчереди, "", Ложь, Ложь, 0);
        Пока Клиент.BasicConsumeMessage("", ОтветноеСообщение, ТегСообщения, TimeOut) Цикл //Тут зависает ровно на время таймаута вне зависимости от размера сообщения
        Клиент.BasicAck(ТегСообщения);
            ОтветноеСообщение = ""; // Обнуляем, чтобы избежать утечку памяти
            ТегСообщения = 0; // Обнуляем, чтобы избежать утечку памяти
        КонецЦикла;

Клиент.BasicCancel("");

При вызове метода BasicConsumeMessage время ожидания сообщения ровняется таймауту, вне зависимости от размера сообщения. PinkRabbitMQ v2.1.1.132