【问题标题】:CronScheduledRoutePolicy not starting the route at specified timeCronScheduledRoutePolicy 未在指定时间启动路由
【发布时间】:2023-03-10 01:12:01
【问题描述】:

我创建了一个CronScheduledRoutePolicy 来每天下午 15:30 开始并触发我的路线,以便从某个网站获取 xml 并将其存储在数据库中,如下所示

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");

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

我还有什么需要做的吗??

【问题讨论】:

    标签: apache-camel quartz-scheduler


    【解决方案1】:

    这是一个激活路由的策略,所以传入到 direct:quatzRoute 的消息在那个时候起作用。

    使用以下方法之一在特定时间获取数据

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

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

    【讨论】:

    • 是的,例如通过从属性文件加载属性然后使用 from("quartz:" + PropertyConfig.getQuartzTime()) 将是一个解决方案
    猜你喜欢
    • 1970-01-01
    • 2017-09-29
    • 2013-10-19
    • 2021-11-07
    • 2018-04-13
    • 2013-05-20
    • 1970-01-01
    • 1970-01-01
    • 2016-10-22
    相关资源
    最近更新 更多