【问题标题】:RabbitMq Consumer not processing messagesRabbitMq 消费者不处理消息
【发布时间】:2016-05-04 01:48:42
【问题描述】:

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

请求及时响应。在此先感谢专家。

【问题讨论】:

    标签: rabbitmq


    【解决方案1】:

    我建议您查看消费者代码,它可能正在运行但卡在 RabbitMQ 异常中。听起来很奇怪,它可以正常运行 3-4 天。

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

    【讨论】:

    • 我正在使用 RabbitMQ.Client.Events.QueueingBasicConsumer 使消息出列。因此,可能我面临同样的问题。您能否提供有关如何使用 RabbitMQ.Client.Events.EventingBasicConsumer 使消息出队的示例代码。
    • @ShikharMaheshwari 以防您没有找到它或其他人需要它。 var consumer = new EventingBasicConsumer(channel); consumer.Received += (model, ea) => { //获取消息并执行工作 var body = ea.Body; var bodyStr = Encoding.UTF8.GetString(body); };
    猜你喜欢
    • 2015-10-03
    • 2017-07-31
    • 1970-01-01
    • 1970-01-01
    • 2020-04-20
    • 2012-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多