5.15.8中忽略了ActiveMQ调度

时间:2019-02-05 09:43:24

标签: scheduled-tasks activemq

我一直在使用ActiveMQ中的计划功能来延迟消息。 但是,从5.9.0版切换到5.15.8版时,延迟设置突然被忽略了。有人知道为什么吗? ActiveMQ代理定义为

<broker xmlns="http://activemq.apache.org/schema/core" brokerName="myBroker" dataDirectory="${activemq.data}" schedulerSupport="true"> 

在5.9.0和

<broker xmlns="http://activemq.apache.org/schema/core" brokerName="myBroker" dataDirectory="${activemq.data}" schedulerSupport="true">
<5.1>中的

。 在我的Java代码中,延迟是通过

设置的
message.setLongProperty(ScheduledMessage.AMQ_SCHEDULED_DELAY, 120000);

如前所述,这在5.9.0版中可以很好地工作(即两分钟后发送的消息),但在5.15.8中则完全忽略(即立即发送的消息)。两种版本都使用相同的脚本启动,只是更改了相关路径。

对activemq.xml文件进行比较,我看不到任何我认为很重要的东西:

[servers]# diff apache-activemq-5.15.8/conf/activemq.xml apache-activemq-5.9.0/conf/activemq.xml
32c32
<           <bean id="logQuery" class="io.fabric8.insight.log.log4j.Log4jLogQuery"
---
>           <bean id="logQuery" class="org.fusesource.insight.log.log4j.Log4jLogQuery"
84c84
<           <!--<persistenceAdapter>
---
>           <persistenceAdapter>
86,93c86,87
<           </persistenceAdapter>-->
<             <persistenceAdapter>
<             <jdbcPersistenceAdapter dataSource="#mssql-ds" lockDataSource="#mssql-ds-lock" lockKeepAlivePeriod="5000">
<                <locker>
<                     <lease-database-locker lockAcquireSleepInterval="10000"/>
<                 </locker>
<             </jdbcPersistenceAdapter>
<             </persistenceAdapter>
---
>           </persistenceAdapter>
>

0 个答案:

没有答案