Работает над проектом C#, в котором используется Кролик. Я нашел то, что мне кажется, как противоречивая информация в документации о том, когда сообщение будет повторно доставлено в результате либо связи или канал умирающих (который один это?)RabbitMq Acks/Republishing
Документов здесь: http://www.rabbitmq.com/semantics.html
, что оно является requeued для доставки, когда канал закрывается
сообщения могут быть возвращены в очередь с использованием AMQP методов, которые показывают параметр (basic.recover снова поставить, basic.reject и basic.nack), или из-за канала закрытие при сохранении непризнанных сообщений. Любой из этих сценариев вызывал сообщения, которые должны быть запрошены в конце очереди для релизов RabbitMQ раньше, чем 2.7.0. Из версии RabbitMQ 2.7.0 сообщения всегда хранятся в очереди в порядке публикации, даже в случае необходимости или закрытия канала.
Но здесь: http://www.rabbitmq.com/tutorials/tutorial-two-dotnet.html
государство: Только когда соединение работника умирает
Если потребитель умирает без отправки ПДТ, RabbitMQ поймет , что сообщение не обрабатывается полностью и будет переадресовывать его другому потребителю . Таким образом, вы можете быть уверены, что сообщение не потеряно, даже если рабочие время от времени умирают.
Нет тайм-аутов сообщений; RabbitMQ будет обновлять сообщение только тогда, когда рабочее соединение умирает. Это нормально, даже если обработка сообщения занимает очень и очень длительное время.
Итак, когда действительно происходит доставка? Когда рабочий или канал умирает? Могу ли я Использовать на одном канале, но ACK на другом канале?
В настоящее время я создал класс ChannelManager, который открывает N каналов и сохраняет их в каналах ConcurrentQueue и Queues/Dequeues, поскольку они необходимы, а также гарантирует, что мы никогда не опустимся ниже минимального количества доступных каналов. С помощью этого метода для меня невозможно обеспечить, чтобы Consume и Ack происходили по тому же каналу ...
Я зарегистрировал проблему: https://github.com/rabbitmq/rabbitmq-website/issues/88 –