Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: Flame_PhoenixОтветов: 1

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

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

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

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

javaparallel-processingapache-camelesper

Ответы

Ответ 1 · рейтинг 1 · Milan Baran

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

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

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

from("esper:xxx").to("seda:process");

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы