微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Apache Camel JdbcMessageIdRepository没有急切插入

如何解决Apache Camel JdbcMessageIdRepository没有急切插入

类似于此问题:Camel JdbcMessageIdRepository key insert after from route instead of onCompletion

他通过扩展JdbcmessageIdRepository来解决该问题,但是我想知道是否还有更好的解决方案?

我遇到的问题是我有一个来自以下文件的路由:

  from: "file:/C:/in?noop=true&idempotent=true&idempotentRepository=#myIdempotentRepo&idempotentKey=#{'$'}{file:onlyname}"

noop选项触发它是幂等的。如果我不指定它在内存中使用的存储库,那么我就不希望这样做:我有一个服务的多个实例,因此它是一个已定义的jdbc实例:

@Bean
public IdempotentRepository<String> myIdempotentRepo(final DataSource dataSource) {
    return new JdbcmessageIdRepository(dataSource,"CUSTOM");
}

但这只是在完成之后插入,这无济于事,因为处理仍可能触发两次。

如果我也在路由上定义了幂等消费者,则它两次使用相同的密钥,因此也无济于事。我会假设,如果eager在认情况下为true,那么它也会在路线的起点插入吗?

谢谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。