如何在Spring批处理中实现多线程

How to implement multithreading in Spring Batch

我们已经实施了 spring 批处理,它正在处理大型数据集,因此完成它需要花费太多时间(大约 2 到 4 小时)。我们有 ItemReade、ItemProcesser 和 ItemWriter。

我们正在努力提高性能,代码很好,所以我们计划实现多线程。

任何人都可以提出建议,如何在 Spring 批处理中实现多线程 我认为我们还应该注意作为 AutoWired 注入的成员变量。

请提出您的建议

我们已经使用 Executor 来实现这一点,我们做了以下事情,

  1. 找出执行时间较长的代码或部分代码。
  2. 分析过能不能用多线程。
  3. 将 Executor 与我们的 oven 框架结合使用,确保线程按顺序返回它是如何插入的。
  4. 将所有成员变量转换为依赖执行批处理的局部变量,因为这会导致多线程问题。
  5. 我们能够将所有 spring 批处理作业的总时间从 12 小时减少到 4 小时。

H