2010-11-23 52 views
5

J'utilise RabbitMQ pour acheminer des messages aux abonnés intéressés par sujet. Chaque abonné a une file d'attente, et je lie la file d'attente aux sujets qui l'intéressent. Je voudrais permettre à l'utilisateur de supprimer un élément de sa liste de sujets.Comment supprimer une liaison de file d'attente de RabbitMQ?

Dans ma configuration, cela impliquerait de "désolidariser" le sujet lié de la file d'attente de cet utilisateur. J'utilise pyamqplib, et je ne vois pas de moyen de le faire via l'objet channel. Est-ce un moyen de supprimer les clés de routage précédemment liées d'une file d'attente?

Répondre

3
public void unsubscribe(String queuename, String topic) throws IOException 
{ 
    ConnectionFactory factory = new ConnectionFactory(); 
    factory.setHost(MQ_HOST); 
    factory.setPort(MQ_PORT); 

    Connection connection = factory.newConnection(); 
    Channel channel = connection.createChannel(); 
    try 
    { 
     channel.exchangeDeclarePassive("Channel name"); 
     channel.queueUnbind(queuename, "Channel name", topic); 
    } 
    finally 
    { 
     handleClose(connection, channel); 
    } 
}