updateLastError("");
std::chrono::milliseconds timeoutSec{ timeout };
auto end = std::chrono::system_clock::now() + timeoutSec;
while (!readQueue.empty() || (end - std::chrono::system_clock::now()).count() > 0) {
Последняя строка организует бесконечный цикл с проверкой условий до момента истечения таймаута или появления сообщений в очереди. Это приводит к 100% загрузки одного процессорного ядра. Рекомендуется заменить данную конструкцию на конструкцию "wait_until". Более подробно можно почитать здесь: https://en.cppreference.com/w/cpp/thread/condition_variable/wait_until
Замена приведет к удалению паразитной загрузки процессора.
bool RabbitMQClient::basicConsumeMessage(std::string& outdata, std::uint64_t& outMessageTag, uint16_t timeout) {
Последняя строка организует бесконечный цикл с проверкой условий до момента истечения таймаута или появления сообщений в очереди. Это приводит к 100% загрузки одного процессорного ядра. Рекомендуется заменить данную конструкцию на конструкцию "wait_until". Более подробно можно почитать здесь: https://en.cppreference.com/w/cpp/thread/condition_variable/wait_until Замена приведет к удалению паразитной загрузки процессора.