如何在骆驼中实现状态轮询SQL使用者?

时间:2018-08-15 08:51:57

标签: apache-camel

我一直在阅读论坛和文档,但似乎找不到与所需内容相关的任何信息,这对我来说是一个巨大的惊喜,因为这似乎是一个普遍的要求,所以我怀疑有更好的方法来解决这个问题。

我有一个数据库,我想在该数据库上运行SQL使用者,并且我只想查询自上次查询以来已被修改的记录。

您似乎无法参数化SQL使用者查询,这似乎是第一个障碍,其次,即使我可以参数化使用者查询,我似乎也无法在一个查询之间存储结果还有下一个。

我的假设是我想存储最高的dateModified值,然后查询dateModified值严格大于存储值的记录。

(我意识到这并非万无一失,因为可能存在毫秒级的问题,但是我想不出另一种方法来实现这一目标,而无需更改应用程序或数据库。)

我看到的使用SQL使用者的唯一方法是将最高的dateModified存储在系统数据库的自定义表中(我宁愿不更改),并包含某种

WHERE dateModified > interfaceDataTable.lastDateModified
在SQL查询中

和一个

UPDATE interfaceDataTable SET lastDateModified = :#$latestDateModifiedValue

在onConsume SQL中。

但是,我宁愿不对源数据库进行任何更改,因为这将对测试等产生进一步的影响。

我觉得我在这里树错了树。有没有更好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:1)

是的,camel-sql当前不支持将此参数设置为动态参数,例如调用Java bean方法等。

我已记录了一张票,以查看我们是否可以执行此操作:https://issues.apache.org/jira/browse/CAMEL-12734