spring - Spring批处理多线程方法-链接阅读器或处理器?
问题描述
我的工作需要获取在所有位置创建的总约会和数据范围的约会类型的报告。下面是实现相同的序列。
从 excel 中读取 50000 个位置的列表
对于上述每个位置,调用 Soap 服务 A 以获取在该位置为数据范围和约会类型创建的约会列表。该请求采用 appt 类型和位置。
对于上述每个约会,请调用 SOAP 服务 B 以获取订单号。
我正在考虑为每个约会类型创建多个步骤,并为每个块大小实现多线程。如果我有 100 个块大小为 10 的位置,则有 10 个线程执行步骤。每个步骤都会有阅读器来读取 excel 文件,我在想是否需要实现复合阅读器来调用服务 A 来获取约会并将其传递给处理器,处理器将为服务 A 在列表中返回的每个约会调用服务 B 或者是最好实现复合处理器,它将:
- 调用服务 A 以获取读取器返回的每个位置块的约会列表(使用异步处理器)
- 将列表传递给第二个处理器
- 遍历列表的每个项目并将约会传递给服务 B 以获取订单号。(使用异步处理器)
- 使用异步项目编写器生成 excel
- 然后在完成所有步骤后,将每个步骤的excel合并为一个excel
是否有更好的设计来处理场景。
解决方案
推荐阅读
- android - Android Navigate 组件导航到子图
- reactjs - 如何在 ant 设计表中混合行跨度和可扩展行
- github - docker push windows 容器镜像到 GitHub 包存储库失败
- python - 从 QWidgetItem 类对象访问“isChecked”属性
- oracle - 保存表单后如何在 Oracle Forms 构建器中创建警报
- spring - 如何使用 Spring 声明式事务和 EntityManagerFactory?
- java - 如何将包含所需参数的列表传递给函数
- javascript - 当此测试失败时,为什么没有正确打印错误消息?
- android - 运行 Android Studio Profiler 时的性能问题:IDE 内存不足
- amazon-web-services - 限制用户仅列出存储桶中的某些文件夹的 AWS S3 策略