我们正在使用@RabbitListener来监听队列,当有消息时我们会处理它们。但是,当队列为空时,我想做一些报告任务,当我们的应用程序刚刚处理队列中的大量消息而一段时间没有消息时,就会发生这种情况。那是我要报告的时间。我怎么能用@RabbitListener做到这一点?
这是我的代码:
@RabbitListener(queues = "${consumer.queue}", containerFactory = "ListenerContainerFactory")
public void handleMessage(Message message) {
processEvent(message);
}
答案 0 :(得分:1)
当我answered your other question a few weeks ago时,AMQP(以及Spring AMQP)中没有机制通知消费者队列中当前没有消息。
我们可以修改容器来触发ApplicationEvent
一次,当处理完消息后没有找到消息,但这需要修改框架。您的听众必须实施ApplicationListener
才能获得此类活动。
如果您愿意,可以随意打开New Feature JIRA Issue,我们也许可以查看它。