我有一个使用camel构建的Web服务,并在karaf上作为OSGi包运行。
当我收到请求时,我将请求中的数据存储在MySQL数据库中。在此之后,另一个包必须检索数据,对其执行某些操作,然后更新数据集并在数据库完成后将其标记为已在db中处理。然后第一个包再次检索已处理/更改的数据,将其作为回复发送到原始请求。
这里的问题是我需要对数据库中的数据进行某种监听,因为整个事情必须尽可能快(用户正在等待答案)。
有没有可能解决这个问题?每隔x秒/毫秒对表进行一次查询真的很脏......
答案 0 :(得分:2)
有一些示例可以证明这一点,例如使用MyBatis或SQL组件
你也可以像克里斯蒂安那样使用JPA。
没有特殊的MySQL组件使用某些MySQL本机API来监听事件。我不知道是否有任何此类API。 Camel中的组件是执行SQL SELECT的通用JDBC / SQL组件。
答案 1 :(得分:0)
使用camel-jpa组件。您定义了一个表示表数据的jpa Entity类。然后用from(" jpa:...")开始你的路线。这将自动轮询数据库并将对象发送到每个实体的路由中。然后,您可以删除或更新(@Consumed方法)表格行。