Apache верблюд и многопоточность в маршруте. Он не ждет, пока закончится маршрут выбора - PullRequest
0 голосов
/ 05 апреля 2020

человек. У меня (надеюсь) простой вопрос для экспертов по Apache Camel. У меня есть следующий маршрут (это упрощенно, чтобы показать, где ошибка, маршрут работает нормально, за исключением ошибки, которую я объясняю)

    from(ROUTE_URI)
        .routeId(ROUTE_ID)
        .choice()
            .when(simple(FILE_EXISTS))
                .log(LoggingLevel.INFO, INFO_MESSAGE_6)
                .to(PROCESS_1_ZIP)
                .to(PROCESS_2_ZIP)
                .process(ex -> ex.getIn().setBody(ex.getIn().getHeaders().get(HEADER)))
            .otherwise()
                .log(LoggingLevel.INFO, FILE_DOES_NOT_EXIST)
                .to(CHANGE_ZIP)
                .to(PROCESS_2_ZIP)
                .setHeader(HEADER, simple("true"))
        .end()

        .choice()
            .when(simple(OPTION_6))
                .process(this::translateToWhateverCommandWeWant)
                .to(ROUTE_URI)
                .process(ex -> ex.getIn().setBody(ex.getIn().getHeaders().get(HEADER)))
        .end()
        .to(UPDATE_FILE)
        .choice()
            .when(simple(OPTION_7))
                .to(CREATE_ZIP)
        .end()
        .log(LoggingLevel.INFO, "Finished process with ID blabla");

Маршрут работает нормально с этим исключением: я проверил какое-то странное поведение (для меня я новичок ie в Camel), которого я не понимаю. UPDATE_FILE выполняется, даже если опция FILE_EXISTS еще не завершена. Поэтому иногда происходит сбой процесса, поскольку некоторые файлы, необходимые для работы этого процесса, недоступны, поскольку они созданы на шаге FILE_EXISTS . Это нормальное поведение для верблюда? Я думал, что Camel ждет выбора пути к fini sh, прежде чем продолжить выполнение. Я не использую несколько потоков или не выполняю шаг FILE_EXISTS в другом потоке. Заранее спасибо.

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