RabbitMQ - 无法以相同的顺序获取消息集

时间:2010-06-09 20:52:47

标签: c# rabbitmq

我在C#中使用Rabbit MQ。这是我的方案

  1. 单独的进程将消息发布到队列
  2. 客户端必须从队列
  3. 中读取N组消息
  4. 处理N条消息
  5. 确认N条消息
  6. 在同一频道下,我收到消息然后处理它们然后确认它们。服务器进程不断发布消息。我面临的问题是,当我尝试获取下一组消息时,它们的顺序与发布过程发布的顺序不同。消息以随机顺序出现。只有第一组消息的顺序正确。

    这里有什么问题吗?是否正在创建一个新的频道来访问下一组消息?以下是示例代码:

    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;
    
                 }
             }
    

    请帮助。谢谢!

0 个答案:

没有答案