2016-01-27 187 views
0

我已经为RabbitMQ作为使用C#.NET编写的控制台应用程序的使用者。它被编程为永久地监听一个队列,并且每当它在队列中找到一条消息时,它就会处理它。消费者平均每秒处理35条消息。用户计划在系统启动时在任务计划程序中运行。消费者运行良好3-4天。但是,它们继续运行,但不处理任何消息,尽管队列中有消息。当用户停止并再次启动时,它会再次开始正确处理消息。但是,到手动重新启动时,数百万条消息会排队。有人可以帮助我解释这种不正常的行为。我还有其他的队列,这些队列在几个月后一直在不停地运行。RabbitMq消费者未处理消息

请求快速响应。在此先感谢专家。

回答

1

我建议你看看消费者代码,它可能正在运行但陷入RabbitMQ异常。听起来很奇怪,它运行良好3-4天。

我有类似的问题消费者没有消费队列中的消息,因为我正在使用“RabbitMQ.Client.QueueingBasicConsumer”消除队列消息,并且当队列突然关闭时消费者正在运行,但它在System.IO中。 EndOfStreamException。我正在使用“RabbitMQ.Client.Events.EventingBasicConsumer”,它帮助我解决了这个问题。

+0

我正在使用RabbitMQ.Client.Events.QueueingBasicConsumer去出队消息。因此,可能我面临同样的问题。你可以给你关于如何使用RabbitMQ.Client.Events.EventingBasicConsumer出队消息的示例代码。 –