我正在尝试使用spring批处理分区来使用rest服务处理数据块。文档说PartitionHandler实现可以是自定义Web服务。是否存在类似于MessageChannelPartitionHandler的Web服务分区处理程序的默认实现?
答案 0 :(得分:0)
根据Spring Batch Integration documentation,有一个MessageChannelPartitionHandler
。这完全足以使用下游的Spring Integration Channel Adapters来区分应用程序中的主从逻辑。
因此,您需要配置MessageChannelPartitionHandler
并提供适当的使用者以发送到Web服务。该文档有一个JMS示例:
@Bean
public PartitionHandler partitionHandler() {
MessageChannelPartitionHandler partitionHandler = new MessageChannelPartitionHandler();
partitionHandler.setStepName("step1");
partitionHandler.setGridSize(3);
partitionHandler.setReplyChannel(outboundReplies());
MessagingTemplate template = new MessagingTemplate();
template.setDefaultChannel(outboundRequests());
template.setReceiveTimeout(100000);
partitionHandler.setMessagingOperations(template);
return partitionHandler;
}
@Bean
public IntegrationFlow outboundJmsRequests() {
return IntegrationFlows.from("outboundRequests")
.handle(Jms.outboundGateway(connectionFactory())
.requestDestination("requestsQueue"))
.get();
}
但你绝对可以做类似的事情,在主方使用SimpleWebServiceOutboundGateway
,在奴隶方使用SimpleWebServiceInboundGateway
。