Apache Camel crystal2计时器开始多次交换

问题描述 投票:0回答:1

我有一个应用程序,该应用程序创建路由以连接到REST端点并处理多个供应商的响应。每条路线均由quartz2计时器触发。最近,计时器触发时,它创建了多个交换,而不仅仅是一个交换,我无法确定是什么原因引起的。

创建路由的方法在这里:


    public String generateRoute(String vendorId) {

        routeBuilders.add(new RouteBuilder() {
            @Override
            public void configure() throws Exception {
                System.out.println("Building REST input route for vendor " + vendorId);
                String vendorCron = vendorProps.getProperty(vendorId + ".rest.cron");
                String vendorEndpoint =  vendorProps.getProperty(vendorId + ".rest.endpoint");
                String vendorAuth = vendorProps.getProperty(vendorId + ".rest.auth");
                int vendorTimer = Integer.valueOf(vendorId) * 10000;
                GsonDataFormat format = new GsonDataFormat(RestResponse.class);
                from("quartz2://timer" + vendorId + "?cron=" + vendorCron)
                        .routeId("Rte-vendor" + vendorId)
                        .streamCaching()
                        .log("Starting route " + vendorId)
                        .setHeader("Authorization",constant(vendorAuth))
                        .to("rest:get:" + vendorEndpoint)
                        .to("direct:processRestResponse")
                        .end();

            };
        });
        return "direct:myRoute." + vendorId;

并且示例'vendorCron'字符串是“ + 5 + + + +?&trigger.timeZone = America / New_York”。

当石英路径触发时,我在日志中看到此类型的输出

15:39| INFO | CamelLogger.java 159 | Starting route 4
15:39| INFO | CamelLogger.java 159 | Starting route 4
15:39| INFO | CamelLogger.java 159 | Starting route 4
15:39| INFO | CamelLogger.java 159 | Starting route 4
15:39| INFO | CamelLogger.java 159 | Starting route 4
15:39| INFO | CamelLogger.java 159 | Starting route 4
15:39| INFO | CamelLogger.java 159 | Starting route 4
15:39| INFO | CamelLogger.java 159 | Starting route 4
15:39| INFO | CamelLogger.java 159 | Starting route 4
15:39| INFO | CamelLogger.java 159 | Starting route 4

[我应该(过去)只看到其中之一。

任何想法会导致什么?

谢谢!

java spring-boot apache-camel quartz-scheduler
1个回答
0
投票

这是由于您的vendorCron

  • 如果Cron触发器是每5秒一次,那么您每5秒就会看到此日志。。>>
  • 如果Cron触发器是每5分钟/小时,您将在5分钟/小时内看到这些登录。
© www.soinside.com 2019 - 2024. All rights reserved.