как написать таймер для метода to () на верблюде

В этом маршруте я хочу выполнить direct: вторая конечная точка для каждого интервала времени после завершения direct: first и direct: first должно выполняться только один раз, что почему я написал метод from () с таймером repeatcount = 1, так что может ли кто-нибудь помочь мне, как решить эту проблему

from("timer:repeatcount=1").
.to("direct:first").  
 to("direct:second").
.setBody(simple("Hello from timer at ${header.firedTime}"))
.to("stream:out");

person sreekanth janapati    schedule 31.10.2020    source источник


Ответы (1)


  1. Используйте цикл и delay для имитации работы таймера.
from("timer:repeatcount=1")
    .to("direct:first")
    .to("direct:second");

from("direct:second")
    .loopDoWhile(true)        // never ending loop, check loop component for more control
        .setBody(simple("Hello from timer at ${header.firedTime}"))
        .to("stream:out")
        .delay(1000)          // delay 1s, check delay component for more control
    .end();                   // end loop
  1. Используйте controlBus, чтобы запустить неактивный маршрут таймера
person hk6279    schedule 02.11.2020