2016-11-11 1 views
2

Unten sind die Header einer Nachricht in einer Dead Letter Queue. Ich benutze RabbitMQ.RabbitMQ: Wie verwenden Sie komplexe Ausdrücke in Header-Exchanges?

__TypeId__: com.example.queue.TesteDTO 
correlationId: dfbc9457-8de6-9b77-b7ad-b259d1e2ede4 
sequenceNumber: 1 
sequenceSize: 2 
x-death:  
    count: 1 
    reason: rejected 
    queue: queue.raffael.teste 
    time: 1478870283 
    exchange: 
    routing-keys: queue.raffael.teste 

Ich möchte ein Kopfwechsel mit Hilfe eines komplexen Ausdrucks erklären und zu binden, sagen:

x-match = any 
x-death[0].count = 1 
x-death[0].count = 2 
x-death[0].count = 3 

Aber es funktioniert nicht. Es scheint für einfache Ausdrücke nur zu arbeiten:

x-match = any 
simpleExpression = 1 
simpleExpression = 2 
simpleExpression = 3 

Also, bitte, wie Verweise auf Array-Indizes zu machen und Komponenten statt nur einfache Ausdrücke in Header-Exchanges (RabbitMQ)?

Antwort

1

Das Wort "Punkt" tritt in der AMQP-Spezifikation nur in Bezug auf den Routing-Schlüssel auf. Der Header Exchange soll die Argumente nicht analysieren. Wenn es einen Header mit einem String-Schlüssel "x-death [0] .count" und einem numerischen Wert 1 gäbe, würde es übereinstimmen, aber es gibt nur einen Header mit einem String-Schlüssel "x-death" und einem Wert mit type: Array von Tabellen.

Verwandte Themen