Mula 3: Controlando se um fluxo pode ser executado
Minha situação atual:
Eu tenho atualmente um aplicativo Mule ESB com três fluxos que processam mensagens originadas de duas fontes diferentes, esses três fluxos são amarrados juntos usando uma fila de VM.
Fluxo 1:
Entrada (Terminal # 1) -> (Executar processamento de mensagens e transformações) -> Saída (Terminal 3)
Fluxo 2:
Entrada (Terminal 2) -> (Executar processamento de mensagens e transformações) -> Saída (Terminal 3)
Fluxo # 3
Entrada (Endpoint # 3) -> (Executa processamento de mensagens e transformações, faça coisas) -> Saída
Problema / Problema:
Agora, o que quero fazer é introduzir um quarto fluxo, o Fluxo 4, que obtém informações de estado de um ponto de extremidade de entrada e, com base nessas informações, evitar que o Fluxo 3 seja executado / impedir que ele processe suas mensagens de entrada.
Em outras palavras, o ideal seria que o Flow # 4 fosse executado na inicialização do aplicativo ESB (como todos os fluxos parecem fazer automaticamente) e, com base nas informações de estado obtidas de sua mensagem de entrada, impedir / permitir ou habilite / desabilite o Fluxo 3 de processar mensagens do Ponto de Extremidade # 3.
A seguir, o que eu de preferência requer:
Requisitos:
Deve ser capaz de realizar somente através do XML de fluxo de mula, sem objetos Java / POJO personalizados adicionais.O fluxo nº 4 deve ser executado na inicialização do aplicativo ESB e somente a primeira mensagem de entrada precisa ser processada.Idealmente, não quero que o Flow # 3 tenha uma origem de entrada composta ou tenha que avaliar cada mensagem de entrada no estado de alguma variável global.Qual é a melhor maneira de realizar o que eu quero fazer?
Se não houver uma solução realmente boa, então, se eu precisar omitir o requisito nº 3, qual é a melhor maneira de realizar uma variável global que seja compartilhada entre dois fluxos independentes que não estão ligados por algum ponto de extremidade outbound -> inbound no Configuração XML? Eu tentei usar as propriedades da sessão, mas elas exigem que os fluxos sejam amarrados juntos como subfluxos ou por um nó de extremidade.
Obrigado.