Запускайте верблюжий прямой маршрут, пока данные не будут обработаны в БД - PullRequest
0 голосов
/ 03 апреля 2020

Я должен реализовать верблюжий маршрут, чтобы запустить указанный c период времени. Первый маршрут, чтобы проверить, есть ли какая-либо запись в таблице. Если в таблице есть запись, запустите другой маршрут для обработки всех записей.

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: маршрут процесса должен сработать с другого маршрута «мой маршрут». Как запустить маршрут vm: process, пока все записи не будут обработаны в базе данных?

...