Apache Camel CronScheduledRoutePolicy не останавливает маршрут?
Я пытаюсь запустить и остановить свой маршрут, который считывается из компонента google-pubsub и отправляется в источник данных JDBC (оракул). Я хочу делать это только в определенное время дня, так как база данных Oracle будет отключена, скажем, с 10 вечера до 12 утра каждую ночь, и в это время я не хочу, чтобы мой маршрут продолжал обрабатывать входящие сообщения pubsub, и хочу, чтобы он останавливался. Но когда я пробую его, маршрут во время остановки говорит:
'{"severity": "WARN", "message": "o.a.c.r.q.ScheduledRoutePolicy | Маршрут не находится в запущенном / приостановленном состоянии и не может быть остановлен. Текущее состояние маршрута остановлено"}'
@Override
public void configure() {
CronScheduledRoutePolicy routePolicy = new CronScheduledRoutePolicy();
routePolicy.setRouteStartTime("0 15 00 * * ?");
routePolicy.setRouteStopTime("0 00 22 * * ?");
System.out.println("am here!!");
onException(Exception.class)
.log(LoggingLevel.ERROR," Error processing message: ${header['CamelGooglePubsub.MessageId']} : ${exception}" )
.to("log:app_error.log?level=DEBUG&showAll=true&showException=true")
.markRollbackOnlyLast()
.end();
CamelContext camelContext= getContext();
System.out.println("Route Status is" + camelContext.getRouteStatus("{{routeID}"));
from("google-pubsub:{{google_project_name}}:{{google_pubsub_subscription}}"+
"?concurrentConsumers={{concurrent_consumers}}"+
"&maxMessagesPerPoll={{max_messages_per_poll}}"+
"&connectionFactory=#googlePubsubConnectionFactory")
.routeId("{{routeID}")
.routePolicy(startPolicy)
.noAutoStartup()
Я хотел, чтобы маршрут начинался, скажем, в 12:15 (routePolicy.setRouteStartTime ("0 15 00 * *?");
и заканчиваются на routePolicy.setRouteStartTime ("0 00 22 * *?");
Правильно ли я делаю это, или мне следует использовать process () на маршруте, чтобы остановить его принудительно, как я могу это сделать?
Спасибо