2014-06-23 1 views
1

두 흐름, A.flow 및 B.flow가 있으며 결국 두 흐름 모두 동일한 Java 클래스를 실행합니다.노새의 서로 다른 흐름 동기화

& B는 별도의 대기열에서 읽습니다.

두 플로우가 동시에 입력되면 한 번에 한 플로우 씩 처리가 끝나고 다른 플로우가 처리를 시작하도록 플로우를 동기화하려고합니다.

아이디어가 있으십니까?

감사

+0

당신을 메시지의 메시지 페이로드에 동일한 Java 객체 (클래스 인스턴스)가 있거나 흐름의 프로세서와 동일한 Java 객체 인스턴스를 사용한다는 의미입니까? 아마도 일부 예제 XML을 사용하여 질문을 명확히 할 수 있습니다. –

답변

2

사용을 풀링 된 구성 요소를 한 번에 하나 개의 스레드를 사용하도록 구성 :

<flow name="A"> 
    <jms:inbound-endpoint...> 
    ... 
    <vm:outbound-endpoint path="process"/> 
    ... 
</flow> 

<flow name="B"> 
    <jms:inbound-endpoint...> 
    ... 
    <vm:outbound-endpoint path="process"/> 
    ... 
</flow> 

<flow name="process"> 
    <vm:inbound-endpoint path="process"/> 
    <pooled-component class="org.my.PrototypeObject"> 
     <pooling-profile exhaustedAction="WHEN_EXHAUSTED_WAIT" initialisationPolicy="INITIALISE_ALL" maxActive="1" maxIdle="1" maxWait="1000" /> </pooled-component> 
    </pooled-component> 
</flow> 

출처 : 당신이 "흐름이 같은 자바 클래스를 처리하는"말할 때 http://www.mulesoft.org/documentation/display/current/Configuring+Java+Components#ConfiguringJavaComponents-ConfiguringaPooledJavaComponent

+0

이 구성 요소는 흐름 A와 B에서 참조하는 세 번째 흐름 (하위 흐름 아님)에 있어야합니다. –

+0

@DavidDossot, 내 대답이 업데이트되었습니다. –

관련 문제