首页 > 解决方案 > 运行骆驼直接路由,直到在数据库中处理数据

问题描述

我必须实施骆驼路线来运行特定时间段。检查表中是否有任何记录的第一条路线。如果表中有记录,则运行另一条路线来处理所有记录。

from("quartz://Timer?cron=0+0/5+20-22+?+*+*")
            .autoStartup(true)
            .routeId("my-route")
            .setBody(constant(sql query))
            .to("jdbc:dataSource?resetAutoCommit=false")
            .choice().when(header("CamelJdbcRowCount").isGreaterThan(0))
                .split(body())
                .setHeader("createdDate", simple("${body['CREATED']}"))
                .inOut("vm:process")
            .end();


    from("vm:process")
            .autoStartup(false)
            .routeId("processrecords")
            .setBody(constant("get all repords query"))
            .to("jdbc:dataSource?readSize=300&useHeadersAsParameters=true&resetAutoCommit=false")
            .split(body())
            .setHeader("Id",simple("${body['ID']}"))
            //do some thing here.
            .setBody(constant("update here onc it is processed."))
            .to("jdbc:dataSource?useHeadersAsParameters=true&resetAutoCommit=false");

}

vm:process 路由应该从另一个路由“我的路由”触发。如何运行 vm:process 路由,直到数据库中的所有记录都处理完?

标签: apache-camelspring-camel

解决方案


推荐阅读