2013-04-30 132 views

回答

0

嗨user2336442(顺便说一句好听的名字......), 如果两个接收者在同一个队列上侦听,那么他们不能保证他们中的哪一个首先接收到这个消息,因为他们遵循先来先得的原则,提供服务。如果两个听众都在同一台机器上(同一IP地址)有没有办法来了解哪一个收到的消息,否则,你可以使用控制台粗略看到的邮件已发送......

1

你有没有自定义编码听众?如果是这样,只需添加一些代码来生成每个听者的唯一ID保存ID在一个实例变量。当侦听器收到消息时,将具有该id的事件输出到标准日志文件。

public class MyListener extends MessageListener { 

    private static int listeners; 
    private int id; 

    public MyListener(){ 
     this.id = generateUniqueId(); 
    } 

    public void onMessage(Message m){ 
     System.out.println("Listener " + id + " got message!"); 
     //do stuff here 
    } 

    private synchronized static int generateUniqueId(){ 
     return listeners += 1; 
    } 
    } 
相关问题