有没有办法在Camel关闭时保留飞行消息,并在后续启动时重新加载?

时间:2015-08-03 17:25:04

标签: java apache-camel

我们希望利用Camel来管理向外部服务发送HTTP请求。这项工作的一部分是重试发送失败的消息(目标服务器中断,一般的互联网中断等)。我们可以通过在Camel路由中的错误处理程序上设置重试策略来轻松完成此操作(这很棒!)。

然而,我们希望最终达到的指数重新传递延迟远远超出了可接受的优雅关闭期。出于部署的目的,我们希望在短时间内(约60秒)关闭服务。这留下了飞行重试消息的可能性。

Camel是否能够在关机时保留飞行消息,然后在系统启动后加载回来?我已经看了一下,看起来我们可能不得不实施自己的InflightRepository和/或LifecycleStrategy,不过我认为在开始这个看似相关的路径之前我最好先问一下。

谢谢, 凯文

1 个答案:

答案 0 :(得分:0)

Camel支持Guaranteed Delivery pattern。默认情况下,jms component使用持久投放