CronScheduledRoutePolicy未在指定时间启动路由

时间:2015-08-28 11:12:06

标签: apache-camel quartz-scheduler

我创建了一个CronScheduledRoutePolicy来启动并每天下午15:30触发我的路线,从某个网站获取xml并将其存储在db中,如下所示

CronScheduledRoutePolicy startPolicy = new CronScheduledRoutePolicy();
startPolicy.setRouteStartTime("0 30 15 * * ?");

from("direct:quatzRoute")
    .routePolicy(startPolicy)
    .log("Route started")*/
    .to("http4://mywebsite/today.xml")
    .log("Response ${body}")
    .convertBodyTo(String.class).process(new Processor() {
        public void process(Exchange e) throws Exception {
            log.info("Before Logging the xml");
            ExchangeRateBean.writeToDB(e);
            log.info("After Logging the xml");
        }
    })
    .log("Xml Stored in DB")
    .to("mock:result");

在控制台中,它显示在部署捆绑包时启动的路由。但是在指定时间(测试给出当前时间)我的工作没有完成。没有日志消息。

还有什么我需要做的吗?

1 个答案:

答案 0 :(得分:3)

这是一个激活路由的策略,因此传入的消息指向:quatzRoute当时工作。

使用以下其中一项来代替在特定时间获取数据

http://camel.apache.org/quartz.html

http://camel.apache.org/quartz2.html