是否有可能用camel监听sql表/字段?

时间:2015-09-22 06:24:30

标签: java mysql web-services apache-camel osgi

我有一个使用camel构建的Web服务,并在karaf上作为OSGi包运行。

当我收到请求时,我将请求中的数据存储在MySQL数据库中。在此之后,另一个包必须检索数据,对其执行某些操作,然后更新数据集并在数据库完成后将其标记为已在db中处理。然后第一个包再次检索已处理/更改的数据,将其作为回复发送到原始请求。

这里的问题是我需要对数据库中的数据进行某种监听,因为整个事情必须尽可能快(用户正在等待答案)。

有没有可能解决这个问题?每隔x秒/毫秒对表进行一次查询真的很脏......

2 个答案:

答案 0 :(得分:2)

有一些示例可以证明这一点,例如使用MyBatis或SQL组件

你也可以像克里斯蒂安那样使用JPA。

没有特殊的MySQL组件使用某些MySQL本机API来监听事件。我不知道是否有任何此类API。 Camel中的组件是执行SQL SELECT的通用JDBC / SQL组件。

答案 1 :(得分:0)

使用camel-jpa组件。您定义了一个表示表数据的jpa Entity类。然后用from(" jpa:...")开始你的路线。这将自动轮询数据库并将对象发送到每个实体的路由中。然后,您可以删除或更新(@Consumed方法)表格行。