当前位置: 首页 > 知识库问答 >
问题:

RabbitMq使用者不处理消息

轩辕佑运
2023-03-14

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

请求迅速回应。提前感谢各位专家。

共有1个答案

李浩邈
2023-03-14

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

我遇到了类似的问题,使用者没有使用队列中的消息,因为我使用“RabbitMQ.client.QueueingBasicConsumer”将消息出列,并且当队列突然关闭时,尽管使用者正在运行,但它在System.io.EndofStreamException中。我正在使用“RabbitMQ.client.events.EventingBasicConsumer”,它帮助我解决了这个问题。

 类似资料:
  • 我对RabbitMQ很陌生,所以如果我的问题听起来很琐碎,请原谅。我想在RabbitMQ上发布消息,它将由RabbitMQ消费者处理。 我的消费者机器是一个多核机器(最好是azure上的工作者角色)。但QueueBasicConsumer一次推送一条消息。我如何编程来利用我可以同时处理多个消息的所有核心。 一种解决方案是在多个线程中打开多个通道,然后在那里处理消息。但在这种情况下,我将如何决定线程

  • 当RabbitMq消息到达队列时,我目前正在使用IntegrationFlow来触发作业执行。IntegrationFlow的AmqpInFronChannelAdapter和作业的第一步的ItemReader都配置为从同一队列中读取消息。 我遇到的问题是IntegrationFlow的AmqpInboundChannelAdapter读取RabbitMQ消息,然后ItemReader再也找不到该

  • 我正在使用Spring AMQP与RabbitMQ一起工作。以下是我的配置: 正如您所看到的,prefetchCount是1000。 我想知道预取的消息是否在消费者中并行处理;也就是说,多个线程调用onMessage(消息消息)方法。或者消息是按顺序处理的;也就是说,一个线程迭代预取的消息,并以连续的方式调用每个消息的onMessage(消息消息消息)方法。 我应该注意到,处理的顺序对我来说并不重

  • 我们最近遇到了由RabbitMQ支持的应用程序的意外行为。RabbitMQ版本为3.6.12,我们使用的是.NET客户端5.0.1 应用程序订阅了两个队列,一个用于命令,另一个用于事件--我们还使用手动确认。我们的应用程序配置为有7个消费者。每个通道都有自己的通道(IModel),每个通道都有自己的EventingBasicConsumer,当EventingBasicConsumer.Recei

  • 我有一个场景,我想“拉”RabbitMQ队列/主题的消息,并一次处理一个。特别是当消费者启动时,队列中已经有消息。我尝试了以下方法,但没有成功(这意味着,这些选项中的每一个都会读取队列,直到队列为空,或者直到另一个线程关闭上下文)。 1.第一次处理后立即停止路由 与1类似,但使用闩锁而不是while loop和sleep。 使用轮询消费者 使用ConsumerTemplate()-类似于上面的代码

  • 文件描述符:256个可用套接字描述符:138个可用 显然我不能打开超过138个连接。 问题1:这个限制是基于什么?我能提高它吗?我想知道在生产机器上(需要哪种EC2实例),每个用户有一个连接是否是一个好主意。我读到过限制可能与ulimit有关,但当我在命令行上运行ulimit时,我看到的是'unlimited'。 还有什么其他的策略?