Моя текущая ситуация:
В настоящее время у меня есть приложение Mule ESB с тремя потоками, которые обрабатывают сообщения, исходящие из двух разных источников, эти три потока связаны друг с другом с помощью очереди виртуальных машин.
Расход #1:
Входящий (Конечная точка #1)-> (Выполнение обработки и преобразования сообщений)-> Исходящий (Конечная точка #3)
Расход #2:
Входящий (Конечная точка #2)-> (Выполнить обработку и преобразование сообщений)-> Исходящий (Конечная точка #3)
Расход #3
Входящий (Конечная точка #3)-> (Выполнять обработку и преобразование сообщений, делать другие вещи)-> Исходящий
Проблема/проблема:
Теперь я хочу ввести четвертый поток, поток #4, который получает информацию о состоянии от входящей конечной точки и на основе этой информации может предотвратить выполнение потока #3/предотвратить его обработку. входящие сообщения.
Другими словами, в идеале я бы хотел, чтобы Flow #4 запускался при запуске приложения ESB (, как это делают все потоки автоматически ), и на основе информации о состоянии, которую он получает от своего приложения. входящее сообщение, запретить/разрешить или включить/отключить поток #3 от обработки сообщений от конечной точки #3.
Вот что мне в идеале нужно:
Требования:
Как лучше всего выполнить то, что я хочу сделать?
Если действительно хорошего решения нет, то если я должен опустить требование #3, то как лучше всего реализовать такую глобальную переменную, которая используется совместно двумя независимыми потоками, не связанными вместе каким-либо исходящим -> входящая конечная точка в конфигурации XML? Я пытался использовать свойства сеанса, но они требуют, чтобы потоки были связаны друг с другом либо как подпотоки, либо как конечная точка.
Спасибо.