Подсчитать количество успешно обработанных сообщений при параллельном верблюде - PullRequest
0 голосов
/ 16 апреля 2020

Я копаюсь на верблюде, чтобы обрабатывать много записей параллельно. У меня есть что-то вроде этого:

     from(CAMEL_START_ROUTE_CTE)       
         .multicast().parallelProcessing()
            .to(CAMEL_PROCESS_DOMAINS_ROUTE)
            .to(CAMEL_PROCESS_OTHERS_ROUTE)
         .end()
         .onCompletion()
         .to(EndCamelRouteBuilder.CAMEL_ROUTE);

Где CAMEL_START_ROUTE_CTE равен

timer:foo?delay=100&repeatCount=1

А затем CAMEL_PROCESS_DOMAINS_ROUTE выглядит так:

 from(CAMEL_PROCESS_DOMAINS_ROUTE)
         .setHeader("domains").constant(config.getDomains())
             .split(header("domains"))          
             .parallelProcessing()
                .to(ProcessDomainCamelRoute.CAMEL_ROUTE)

             .end()
         .end();

Упрощение, домены это json список.

То, что я пытаюсь достичь, - это способ подсчитать количество сообщений и иметь возможность прочитать его по маршруту EndCamelRoute

Я пробовал с exchange.setProperty в процессор (используя CamelSplitSize), setHeader и т. д. c ... но я всегда получаю нулевое значение при чтении.

Кто-нибудь знает способ достижения чего-то подобного? Какой-то ... отчетный материал (количество неудачных, успешных сообщений), но используемый по другому маршруту

1 Ответ

1 голос
/ 17 апреля 2020

Я боролся с подобной проблемой при использовании сплита. В итоге получился очень простой бин с хэш-картой, где я храню свои счетчики. Я искал MicroMeter Component , но это только для потребителя.

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