在访问队列之前,未应用来自camel路由的Activemq timeToLive

时间:2017-09-18 15:30:47

标签: apache-camel activemq

我们正在使用来自主题的camel路由为队列中的消息配置timeToLive,如下所示:

<route errorHandlerRef="BrokerErrorHandlerEvents">
            <description>MQTT Events</description>
            <from uri="ourbroker:topic:events.>"/>
            <setHeader headerName="myUser">
                <simple>${headers.JMSXUserID}</simple>
            </setHeader>
            <setHeader headerName="myTopic">
                <simple>ssc.${headers.JMSDestination}</simple>
            </setHeader>
            <setHeader headerName="msgReceived">
                <simple>${headers.JMSTimestamp}</simple>
            </setHeader>
            <to uri="ourbroker:queue:ourqueue.ourbroker_events?
timeToLive=600000"/>
        </route>

然后我们从ActiveMQ Web界面发送一些测试消息。在timeToLive(10分钟)之后,我们希望消息转到DLQ。在此之后,消息将保留在其队列中。有趣的是,如果我们从Web界面访问队列内容,所有消息似乎都被处理过了#34;并在此时发送给DLQ(好像我们的访问触发了检查)。

当我们从Web界面访问队列时,为什么会发生这种情况?我们是否缺少一些配置参数来安排检查过期消息? (注意:我们有schedulerSupport =&#34; true&#34;在代理中)

0 个答案:

没有答案