2017-08-22 11 views
0

J'utilise 1.5.2 printemps-AMQP et souhaite publier un message qui peut résider dans la file d'attente au maximum 10 secondes:TTL message Spring ne fonctionne pas

Je suis en train de l'expiration à 10000 (10 secondes) pour tous mes messages mais les messages sont toujours dans la file d'attente après 10 secondes. Voici mon extrait de code:

MessageProperties props = new MessageProperties(); 

props.setExpiration("10000"); 

Message message = new Message(event.toByteArray(), props); 
this.rabbitTemplate.convertAndSend("my-exchange", "my-routing-key", message); 

Répondre

1

Utilisation send() au lieu de convertAndSend().

La conversion sert à envoyer un objet qui doit être converti en Message; vous avez déjà un Message.

+0

Comment cela résout-il les problèmes du temps de vivre? La partie "convertir", lorsqu'elle est appliquée à un message existant, supprime-t-elle les propriétés précédemment définies? –

+1

Lors de l'utilisation de 'convertAndSend', vous demandez au modèle d'envelopper l'objet (qui se trouve être un message dans votre cas) dans un nouveau message, qui n'aura pas vos en-têtes. –