Вызов метода ПолучитьСообщение в случае пустой очереди сообщений блокирует поток до тех пор, пока не будет достигнут таймаут, несмотря на то, что сервер RabbitMQ отвечает на порядок быстрее. Т.е. если сообщение есть, метод отрабатывает быстро, а если сообщений нет - ждем истечения таймаута. Подобное поведение выглядит странным, т.к. таймаут должен предполагать допуски по времени на недоступность/загруженность сервера/сети, и не использоваться, если сервер RabbitMQ доступен и просто очередь пустая. В случае большого количества обрабатываемых очередей мы теряем много времени просто на ожидание истечения таймаута.
Прошу прокомментировать такое поведение и исправить обработку параметра Таймаут.
Пример кода:
Таймаут = 1000;
СообщениеПрочитано = Клиент.BasicConsumeMessage(ИмяПотребителя, Результат, Таймаут);