Spring AMQP RabbitMQ不会消耗所有消息,工作人员会过早完成

时间:2019-05-14 15:23:22

标签: rabbitmq spring-amqp spring-rabbitmq

我正在努力寻找适当的设置来延迟RabbitMQ中工作人员的超时。

默认情况下,prefetchCount的版本为2.0,设置为250,并且正好接收和处理此数量的消息。 我想让工作人员忙,直到他们清除整个队列(例如说1万条消息)。

我可以手动操作此数字,例如更改默认限制或分配更多线程,从而导致默认数字成倍增加。

结果始终相同。一旦达到该数目,工作人员将停止工作并完成应用程序的执行

o.s.a.r.l.SimpleMessageListenerContainer : Successfully waited for workers to finish.

我希望他们在队列为空时完成。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

logger.info("Successfully waited for workers to finish.");仅发生在一个地方-doShutdown()。然后从shutdown()调用这个,而从destroy()stop()调用。

我以某种方式认为您出于某种原因退出了应用程序。您只是不阻止main()永久工作。

请分享一个我们可以玩的简单项目。