Не начинать маршрут, если выполнение предыдущего маршрута не закончено - PullRequest
1 голос
/ 11 марта 2020

Я ищу решение в apache верблюде для решения проблемы в коде ниже. маршрут не может быть запущен снова, пока он не завершит свой предыдущий рейс.

@Override
public void configure() throws Exception {
    from("timer://foo?fixedRate=true&period=3s")
            .routeId("teste")
            .log("INIT")
            .delay(5000)
            .log("DELAY-END")
            .end();
}

enter image description here

1 Ответ

0 голосов
/ 11 марта 2020

Вы можете разрешить Delayer использовать неблокирующую асинхронную задержку, что означает, что Camel будет использовать планировщик для планирования задачи, которая будет выполнена в будущем. Задача затем продолжит маршрутизацию. Это позволяет потоку вызывающего абонента не блокировать и иметь возможность обслуживать другие сообщения и т. Д. c.

Прямо из документов . Добавьте .asyncDelayed() сразу после .delay(5000), чтобы включить неблокирующее поведение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...