Mule 3: Управление разрешением выполнения потока
My current situation:
В настоящее время у меня есть приложение Mule ESB с тремя потоками, которые обрабатывают сообщения, поступающие из двух разных источников, эти три потока связаны вместе с помощью очереди виртуальных машин.
Flow #1:
Входящий (конечная точка № 1) - & gt; (Выполнять обработку сообщений и преобразования) - & gt; Исходящий (конечная точка № 3)
Flow #2:
Входящий (конечная точка № 2) - & gt; (Выполнять обработку сообщений и преобразования) - & gt; Исходящий (конечная точка № 3)
Flow #3
Входящий (конечная точка № 3) - & gt; (Выполнять обработку сообщений и преобразования, делать вещи) - & gt; Исходящий
Problem/ Issue:
Теперь я хочу представить четвертый поток, поток № 4, который получает информацию о состоянии от входящей конечной точки и на основе этой информации может предотвратить выполнение потока № 3 или предотвратить его обработку входящих сообщений.
Другими словами, в идеале мне хотелось бы, чтобы поток # 4 запускался при запуске приложения ESB (как, по-видимому, автоматически выполняются все потоки), и на основе информации о состоянии, которую он получает из входящего сообщения, запретить / разрешить или включите / отключите поток № 3 от любой обработки сообщений от конечной точки № 3.
Вот что мне идеально нужно:
Requirements:
Must be able to accomplish solely through the mule flow XML, no additional POJO/ custom Java objects. Flow #4 must be performed at startup of the ESB application and only the first inbound message needs to ever be processed. Ideally, I don't want Flow #3 to have a composite inbound source or have to evaluate every inbound message the state of some global variable.Как лучше всего выполнить то, что я хочу сделать?
Если нет действительно хорошего решения, то, если я должен опустить требование # 3, то каков наилучший способ для достижения такой глобальной переменной, которая совместно используется двумя независимыми потоками, которые не связаны друг с другом каким-то исходящим потоком - & gt; входящая конечная точка в конфигурации XML? Я пытался использовать свойства сеанса, но они требуют, чтобы потоки были связаны как подпотоки или как конечная точка.
Благодарю.