Camel中邮件的自动过期

Pau*_*ire 5 java activemq-classic apache-camel

我有一个实现Camel和ActiveMQ的系统,用于某些服务器之间的通信.我想知道是否有一种方法可以在X时间段后自动过期并清除发送到队列的消息.由于始发服务器(填充队列)不知道是否有人正在接收消息,因此我不希望我的队列增长直到其大到崩溃.奖励业力指向可以帮助并提供java dsl方式来实现此功能的人.


// expire message after 2 minutes
long ttl = System.currentTimeMillis() + 120000;
// send our info one-way to the group topic
camelTemplate.sendBodyAndHeader("jms:queue:stats", ExchangePattern.InOnly, stats, "JMSExpiration", ttl);
Run Code Online (Sandbox Code Playgroud)

Ara*_*ram 6

JMS提供了一种机制,可以设置消息的到期日期.请看以下两个参考文献

  1. setJMSExpiration(long expiration):每条消息
  2. ActiveMQ:如何设置消息过期:每个消息/每个消息