#apache-camel #spring-camel
Вопрос:
У меня есть ситуация, когда нам нужно отправить сообщение на один и тот же маршрут несколько раз, и этот маршрут будет выполняться бесконечно, например,
from(file://configuration.txt)
.bean(parseToList.class)
.split(body()) // each iteration will have different config data
.to(route://xyz)
.end()
//this will run indefinetly
from(direct://xyz)
.to(sql:fetch query dynamically based on data)
.choice().when().simple(roucount>0).to(file://destination)
.sleep(3000)
.to(direct://xyz)
Мне нужно прямое:XYZ должен вызываться для каждого сообщения в другом потоке и должен выполняться вечно. Как добиться этого в camel?
Правка 1: У меня есть предложение использовать seda: вместо прямого, чтобы включить возможность асинхронности. Но мне также нужно, чтобы маршрут был транзакционным, поэтому есть какие-либо предложения по реализации асинхронного и транзакционного маршрута?
Ответ №1:
Я думаю, что то, что вы ищете, может быть реализовано с помощью компонента SEDA. direct:
компонент является синхронным, но SEDA обеспечивает асинхронное поведение. Дополнительно проверьте образцы в репозитории примеров верблюдов.
Комментарии:
1. Поддерживает ли SEDA транзакционное поведение? Если нет, то есть ли какая-либо альтернатива поддержке транзакций?