首页 > 解决方案 > Spring批处理多线程方法-链接阅读器或处理器?

问题描述

我的工作需要获取在所有位置创建的总约会和数据范围的约会类型的报告。下面是实现相同的序列。

  1. 从 excel 中读取 50000 个位置的列表

  2. 对于上述每个位置,调用 Soap 服务 A 以获取在该位置为数据范围和约会类型创建的约会列表。该请求采用 appt 类型和位置。

  3. 对于上述每个约会,请调用 SOAP 服务 B 以获取订单号。

我正在考虑为每个约会类型创建多个步骤,并为每个块大小实现多线程。如果我有 100 个块大小为 10 的位置,则有 10 个线程执行步骤。每个步骤都会有阅读器来读取 excel 文件,我在想是否需要实现复合阅读器来调用服务 A 来获取约会并将其传递给处理器,处理器将为服务 A 在列表中返回的每个约会调用服务 B 或者是最好实现复合处理器,它将:

  1. 调用服务 A 以获取读取器返回的每个位置块的约会列表(使用异步处理器)
  2. 将列表传递给第二个处理器
  3. 遍历列表的每个项目并将约会传递给服务 B 以获取订单号。(使用异步处理器)
  4. 使用异步项目编写器生成 excel
  5. 然后在完成所有步骤后,将每个步骤的excel合并为一个excel

是否有更好的设计来处理场景。

标签: springmultithreadingspring-batchbatch-processing

解决方案


推荐阅读