Как amqp_consume_message указывает на неожиданный кадр - PullRequest
0 голосов
/ 03 июля 2018

Документация для функции amqp_consume_message, для версии 0.8.0 librabbitmq (rabbitmq-c) говорит :

Если ret.reply_type == AMQP_RESPONSE_LIBRARY_EXCEPTION и ret.library_error == AMQP_STATUS_UNEXPECTED_FRAME, был получен кадр, отличный от AMQP_BASIC_DELIVER_METHOD, вызывающий оператор должен * вызвать_должный_приемник *, который должен (*) ответить на этот запрос (*)

Но нет кода ошибки AMQP_STATUS_UNEXPECTED_FRAME. Так как же функция указывает на неожиданный кадр?

1 Ответ

0 голосов
/ 03 июля 2018

Поскольку коммит 2017-08-02 комментарий к этой функции гласит:

Если ret.reply_type == AMQP_RESPONSE_LIBRARY_EXCEPTION и ret.library_error == AMQP_STATUS_UNEXPECTED_STATE , кадр кроме AMQP_BASIC_DELIVER_METHOD был получен, вызывающий должен вызвать amqp_simple_wait_frame (), чтобы прочитать эту рамку и принять соответствующие меры.

Похоже, в этом комментарии произошла ошибка: код ошибки для неожиданного кадра - AMQP_STATUS_UNEXPECTED_STATE, а не AMQP_STATUS_UNEXPECTED_FRAME. Версия 0.9.0 включает это исправление.

...