首页 文章

TimeToLive对Camel响应消息

提问于
浏览
2

当使用InOut范例向JMS endpoints 发送请求/响应消息时,Camel JMS documentation描述了如何在请求消息上设置消息过期,但它不是请求消息的使用者发送的消息 . 文档确实描述了replyToDeliveryPersistent URI选项,消费者可以设置该选项以指定它发送的响应消息应该是非持久的,但是我没有看到任何可以指定响应消息是否将设置到期日期的内容 .

是否有某种方法可以确保响应消息将过期(因此它们可以自动从代理中删除)如果它们在一定时间内未被消耗(例如因为请求的 生产环境 者在读取其响应之前被杀死了)最终请求),没有实现自定义ActiveMQ使用者并失去使用Camel的好处?我控制 生产环境 者和消费者,所以改变可以发生在他们需要做的任何一方(并且我知道消费者端是可能需要完成的地方);这里唯一的标准是Camel必须保持处理消息的方法并用回复消息进行响应,因为必须手动实现该方法比使用持久性回复消息更糟糕 .

1 回答

  • 4

    在消息上设置到期时间( JMSExpiration 标头)的唯一方法是从其 生产环境 点(即由 生产环境 者) .

    在您的情况下, consumer of your request 应使用JMS组件的URI选项 timeToLiveJMSExpiration 日期设置为explicit1,并且无法从请求方设置此选项 .


    1) JMS规范指出,不是直接设置 JMSExpiration ,JMS客户端应指定生存时间 . 然后将 Headers 计算为生存时间和当前GMT值之和 .

相关问题