利用死信队列创建延时消息

2019年1月22日 作者 lj
    <!--======================================================================================== 延时队列 START-->
    <!--针对对飞特下单后, 要过20s才能获取"一单到底"的标签和转单号, 所以使用死信消息-->

    <!--deadLetterQueue1: 延时缓冲队列, deadLetterQueue2: 死信队列, 接受deadLetterQueue1转来的消息-->
    <rabbit:queue id="deadLetterQueue1"  name="deadLetterQueue1" >
        <rabbit:queue-arguments>
            <entry key="x-message-ttl" value="20000" value-type="java.lang.Long"></entry>
            <entry key="x-dead-letter-exchange" value="deadLetterExchange"></entry>
            <entry key="x-dead-letter-routing-key" value="deadLetterQueue2Key"></entry>
        </rabbit:queue-arguments>
    </rabbit:queue>

    <rabbit:queue id="deadLetterQueue2"  name="deadLetterQueue2" />

    <!-- 死信交换机 -->
    <rabbit:direct-exchange name="deadLetterExchange">
        <rabbit:bindings>
            <rabbit:binding queue="deadLetterQueue2" key="deadLetterQueue2Key"/>
        </rabbit:bindings>
    </rabbit:direct-exchange>

    <rabbit:template id="deadLetterMQTemplate" exchange="apiExchange" routing-key="deadLetterQueue1Key"
                     connection-factory="rabbitConnectionFactory" message-converter="jsonMessageConverter"/>
    <!--======================================================================================== 延时队列 END-->