Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 侦听RabbitMQ队列并获取事件通知_Java_Queue_Rabbitmq_Listener_Spring Amqp - Fatal编程技术网

Java 侦听RabbitMQ队列并获取事件通知

Java 侦听RabbitMQ队列并获取事件通知,java,queue,rabbitmq,listener,spring-amqp,Java,Queue,Rabbitmq,Listener,Spring Amqp,我目前正在使用Spring AMQP和RabbitMQ开发一个Java应用程序,希望监视我的队列,并在发生某些事件时得到通知,如 元素已添加到队列中 元素已删除,或 元素,但又在队列中(回滚) 如何侦听此类事件,或者RabbitMQ执行此类操作的方式是什么?从队列异步接收消息就是使用带注释的侦听器端点基础结构。简而言之,它允许您将托管bean的方法公开为兔子侦听器端点 @Component public class MyService { @RabbitListener(queue

我目前正在使用Spring AMQP和RabbitMQ开发一个Java应用程序,希望监视我的队列,并在发生某些事件时得到通知,如

  • 元素已添加到队列中
  • 元素已删除,或
  • 元素,但又在队列中(回滚)

如何侦听此类事件,或者RabbitMQ执行此类操作的方式是什么?

从队列异步接收消息就是使用带注释的侦听器端点基础结构。简而言之,它允许您将托管bean的方法公开为兔子侦听器端点

@Component
public class MyService {

    @RabbitListener(queues = "myQueue")
    public void processOrder(String data) {
        ...
    }

}
检查 每当有消息被推送到队列
myQueue
processOrder
时,就会触发方法


对于您的其他需求,您还可以使用来监视在队列上执行的任何操作。在对队列执行任何操作之前,将触发相应的事件。

您所说的“元素”是什么意思?“消息”?是的,这就是我的意思。我无法理解删除
消息时获得通知的用例。请您进一步解释。@Shirish我想创建一个监控应用程序,显示哪些消息进入队列,哪些消息从队列中获取,哪些消息由于事务回滚而返回队列。因此,我希望显示队列的当前状态/消息(例如,在UI上),并希望在队列状态更改时获得更新/通知。(例如,这样我可以更新UI)。您的意思是设置一个事件系统来监视我自己在队列上执行操作的方法吗?如果是,这也是我为获得所需行为所做的变通方法,但遗憾的是,这并不能回答我的问题。no processOrder是接收添加到队列中的任何内容的方法。此方法的作用类似于队列的订阅者而不是发布者。检查Spring AMqp文档。