RabbitMQ - Не удается получить наборы сообщений в том же порядке - PullRequest
2 голосов
/ 10 июня 2010

Я использую Rabbit MQ в C #.Это мой сценарий

  1. Отдельный процесс публикует сообщения в очередь
  2. Клиент должен прочитать набор из N сообщений из очереди
  3. Обработать N сообщений
  4. Подтверждение N сообщений

По тому же каналу я получаю сообщения, затем обрабатываю их и затем подтверждаю их.Серверный процесс продолжает публиковать сообщения.Проблема, с которой я сталкиваюсь, заключается в том, что, когда я пытаюсь получить следующий набор сообщений, они приходят не в том порядке, в котором они были опубликованы в процессе публикации.Сообщения приходят в случайном порядке.Только первый набор сообщений приходит в правильном порядке.

Кто-нибудь что-то здесь не так?Не является ли правильным создание нового канала для доступа к следующему набору сообщений?Ниже приведен пример кода:

while (true)
         {
             using (IModel getChannel = MQConnection.CreateModel())
             {
                 // Create a consumer
                 QueueingBasicConsumer consumer = CreateQueueConsumer(getChannel, exchangeName, queueName);

                 int numberOfMessages = 100;
                 // Next Recieve
                 List<object> msgSet = GetNextSetOfMessages(consumer, getChannel, exchangeName, queueName, numberOfMessages, out finalDeliverytag);


                 // Do some processing

                 if (finalDeliverytag > 0)
                     AckFinishedMessages(exchangeName, queueName, finalDeliverytag, getChannel);

                 if (finalDeliverytag == 0)
                     break;

             }
         }

Пожалуйста, помогите.Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...