Pergunta

Estou tentando implementar a fragmentação remota em lote de primavera usando integração de primavera e amqp (rabbitmq).

Não consigo entender como o ChunkMessageChannelItemWriter coleta respostas no teste de agrupamento remoto abaixo

https://github.com/spring-projects/spring-batch/blob/master/spring-batch-integration/src/test/resources/org/springframework/batch/integration/chunk/RemoteChunkStepIntegrationTests-context.xml

Como funciona ?Ele envia uma mensagem, aguarda sua resposta, recebe sua resposta e, em seguida, novamente a segunda mensagem, aguarda a resposta da segunda mensagem e recebe a resposta da segunda mensagem e assim por diante?

Ou envia todas as mensagens de forma assíncrona e aguarda respostas e depois recebe respostas à medida que chegam no canal de resposta?

Se nos referirmos à documentação de chunking remoto aqui

http://docs.spring.io/spring-batch/reference/html/springBatchIntegration.html#asynchronous-processors

ele usa adaptadores de entrada e saída.Se ChunkMessageChannelItemWriter recebe respostas, por que precisamos de adaptadores?e no lado escravo, por que adaptadores e ativadores de serviço são usados?

Alguém pode me ajudar a entender como funciona, pois é difícil de entender na documentação.

Foi útil?

Solução

Isso é apenas um caso de teste - tudo roda localmente - veja o Caso de teste JMS para um exemplo mais real.O gravador de item de canal envia todos os pedaços para JMS usando um adaptador de canal de saída.

O lado remoto (contêiner ouvinte jms) recebe os pedaços, processa-os e envia as respostas para o replies fila.

Cada vez que o escritor é chamado para escrever um pedaço, ele verifica as respostas e suspende, se necessário, se o limite de aceleração for excedido.

Quando todos os pedaços são escritos, em afterStep(), ele aguarda o restante dos resultados.

Tudo isso funciona da mesma forma com o caso de teste local porque o manipulador de blocos grava as respostas em um canal de fila.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top