Может ли Camel запускать Esper с parallelProcessing?

Недавно я начал использовать Camel с Esper. Из документации я знаю, что некоторые шаблоны Camel, такие как, например, Multicast, можно запускать с использованием метода parallelProcessing, который по умолчанию создает пул из 10 потоков для запуска этого шаблона.

После прочтения camel/esper page я ничего не увидел об использовании Esper в Camel с parallelProcessing.

Мой вопрос: могу ли я запустить Esper в Camel, используя какую-то параллельную обработку? Если да, то как?


person Flame_Phoenix    schedule 04.02.2014    source источник
comment
В этом вам поможет асинхронный API.   -  person Ralf    schedule 04.02.2014
comment
Теоретически да, .multicast().parallelProcessing().to("esper:abc", "esper:def", "esper.ghi") должен работать (с соответствующей AggregationStrategy).   -  person vikingsteve    schedule 04.02.2014


Ответы (1)


Multicast — это другой способ решения проблем. Он принадлежит только текущему потоку. Это просто означает, что сообщение из этой точки будет передано другим компонентам без изменений и с параллельным поведением. Напротив находится компонент Pipeline.

Я думаю, вам нужен компонент seda. Напротив seda находится компонент direct. Если вы отправите сообщение на direct, оно будет запущено и начнет новый поток только тогда, когда закончится первый. Если вы отправите сообщение seda, он будет запускать новый поток каждый раз, когда получит сообщение. Вы можете определить пул потока/потока и некоторые другие параметры, как себя вести.

Итак, ваша конфигурация верблюда будет выглядеть так:

from("esper:xxx").to("seda:process");
person Milan Baran    schedule 04.02.2014
comment
Знаете ли вы какой-либо пример использования этого? Было бы очень хорошо, если бы я мог получить в свои руки один. В любом случае респект++! - person Flame_Phoenix; 05.02.2014
comment
К сожалению, нет простого примера... Просто продолжайте играть с ним, и я уверен, что вы скоро его получите. :) - person Milan Baran; 05.02.2014