2013-04-30 139 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; 
    } 
    } 
相關問題