2014-01-28 3 views
0

이 아이디어는 디렉토리마다 3 초 폴링 및 비동기 실행을 허용하는 채널에 따라 디스패처에 여론 조사 당 3 메시지를 방출하는 것입니다 인바운드 어댑터 건너 뛰는 메시지

<int-file:inbound-channel-adapter id="files" directory="${lz.dir.${ft}}"> 
    <int:poller fixed-delay="3000" max-messages-per-poll="3" /> 
</int-file:inbound-channel-adapter> 

<int:bridge input-channel="files" output-channel="sourceFiles" /> 

<int:channel id="sourceFiles"> 
    <int:dispatcher task-executor="executor" /> 
</int:channel> 

<int:service-activator input-channel="sourceFiles" 
         ref="moveToSource" 
         method="move" /> 

<int:aggregator id="filesBuffered" 
       input-channel="sourceFiles" 
       output-channel="stagedFiles" 
       release-strategy-expression="size() == 10" 
       correlation-strategy-expression="'mes-group'" 
       expire-groups-upon-completion="true" 
       /> 

<int:channel id="stagedFiles" /> 

<int:service-activator input-channel="stagedFiles" 
         ref="moveToStage" 
         method="move" /> 

<task:executor id="executor" pool-size="5" queue-capacity="0" rejection-policy="CALLER_RUNS" /> 

처럼 내 구성 보이는 방법이다. 그런 다음 메시지 수를 기준으로 메시지를 집계 한 후 다음 서비스 활성화 자에게 보냅니다. 첫 번째 서비스 활성화자는 소스 디렉토리에 파일을 저장하고 두 번째 서비스 활성기는 집계 된 목록을 가져 와서 해당 파일을 준비 디렉토리로 이동합니다.

원본 폴더에서 일부 파일을 건너 뛰고 준비 폴더에서 모든 파일을 가져 오는 것 같습니다. 내 생각 엔 폴러가 발송자 채널에 메시지를 보냈지 만 스레드 풀이 가득 차면 파일을 무시하지만 어쨌든 애그리 게이터는 여전히 모든 파일을 가져옵니다. 디스패처 채널과 거의 비슷하게 스레드 풀 한도에 도달 한 후에받은 파일에 대한 첫 번째 서비스 활성화 단계를 건너 뛰지 만 이러한 파일은 여전히 ​​다음 채널로 전달되고 두 번째 서비스 활성기에 의해 처리되는 방식을 유지합니다.

폴러가 디스패처에서 거부 된 파일을 다시 보내도록하고 싶습니다. 어떤 아이디어라도 감사 할 것입니다.

답변

0

죄송합니다

덕분에, 나는 당신이 설명을 이해하지 않지만, 같은 구성하여 본다 :

  1. sourceFiles 채널 포인트 - 투 - 포인트입니다. 따라서 한 번에 한 명의 가입자 만 해당 채널에서 메시지를 가져올 수 있습니다.
  2. 서비스 가입 자 및 집계 자
  3. 기본적으로는 RoundRobinLoadBalancingStrategy을 사용합니다. 즉, 첫 번째 메시지는 첫 번째 가입자에 의해 처리되고 두 번째 메시지는 두 번째 구독자 등에 의해 처리됩니다. 당신이 연속을 갖고 싶어
  4. 그래서, moveToSource 서비스 활성화의 아웃 바운드 채널에 애그리 게이터 (aggregator)를 구독하고 move 방법 같은 페이로드에서 반환 할 필요가있다. 당신의 경우에 File.

귀하의 경우가 아니라면, 제공하십시오. 설정을 수정하거나 사용 사례를 설명하십시오. 이제 혼란 스럽습니다. 죄송합니다.

HTH

+0

잘못된 구성이었습니다. – adeelmahmood