非同步處理器

非同步處理器幫助您擴充套件專案的處理能力。在非同步處理器用例中,AsyncItemProcessor充當排程器,在新執行緒上執行專案的ItemProcessor邏輯。一旦專案完成,Future將被傳遞給AsyncItemWriter進行寫入。

因此,您可以透過使用非同步專案處理來提高效能,這基本上可以讓您實現分叉-連線場景。AsyncItemWriter會收集結果,並在所有結果可用時立即將塊寫回。

  • Java

  • XML

以下示例展示瞭如何在 Java 中配置 AsyncItemProcessor

Java 配置
@Bean
public AsyncItemProcessor processor(ItemProcessor itemProcessor, TaskExecutor taskExecutor) {
    AsyncItemProcessor asyncItemProcessor = new AsyncItemProcessor();
    asyncItemProcessor.setTaskExecutor(taskExecutor);
    asyncItemProcessor.setDelegate(itemProcessor);
    return asyncItemProcessor;
}

以下示例展示瞭如何在 XML 中配置 AsyncItemProcessor

XML 配置
<bean id="processor"
    class="org.springframework.batch.integration.async.AsyncItemProcessor">
  <property name="delegate">
    <bean class="your.ItemProcessor"/>
  </property>
  <property name="taskExecutor">
    <bean class="org.springframework.core.task.SimpleAsyncTaskExecutor"/>
  </property>
</bean>

delegate 屬性指向您的 ItemProcessor bean,而 taskExecutor 屬性指向您選擇的 TaskExecutor

  • Java

  • XML

以下示例展示瞭如何在 Java 中配置 AsyncItemWriter

Java 配置
@Bean
public AsyncItemWriter writer(ItemWriter itemWriter) {
    AsyncItemWriter asyncItemWriter = new AsyncItemWriter();
    asyncItemWriter.setDelegate(itemWriter);
    return asyncItemWriter;
}

以下示例展示瞭如何在 XML 中配置 AsyncItemWriter

XML 配置
<bean id="itemWriter"
    class="org.springframework.batch.integration.async.AsyncItemWriter">
  <property name="delegate">
    <bean id="itemWriter" class="your.ItemWriter"/>
  </property>
</bean>

同樣,delegate 屬性實際上是對您的 ItemWriter bean 的引用。

© . This site is unofficial and not affiliated with VMware.