У меня есть приложение, которое создает маршруты для подключения к конечной точке REST и обработки ответов для нескольких поставщиков. Каждый маршрут запускается с помощью кварцевого таймера. Недавно, когда таймер срабатывает, он создает несколько обменов вместо одного, и я не могу определить, что его вызывает.
Метод создания маршрутов здесь:
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
Когда я должен (и привык) видеть только один из них.
Есть идеи, что могло бы вызвать это?
Спасибо!