如何在Spring批处理中实现多线程
How to implement multithreading in Spring Batch
我们已经实施了 spring 批处理,它正在处理大型数据集,因此完成它需要花费太多时间(大约 2 到 4 小时)。我们有 ItemReade、ItemProcesser 和 ItemWriter。
我们正在努力提高性能,代码很好,所以我们计划实现多线程。
任何人都可以提出建议,如何在 Spring 批处理中实现多线程
我认为我们还应该注意作为 AutoWired 注入的成员变量。
请提出您的建议
我们已经使用 Executor 来实现这一点,我们做了以下事情,
- 找出执行时间较长的代码或部分代码。
- 分析过能不能用多线程。
- 将 Executor 与我们的 oven 框架结合使用,确保线程按顺序返回它是如何插入的。
- 将所有成员变量转换为依赖执行批处理的局部变量,因为这会导致多线程问题。
- 我们能够将所有 spring 批处理作业的总时间从 12 小时减少到 4 小时。
H
我们已经实施了 spring 批处理,它正在处理大型数据集,因此完成它需要花费太多时间(大约 2 到 4 小时)。我们有 ItemReade、ItemProcesser 和 ItemWriter。
我们正在努力提高性能,代码很好,所以我们计划实现多线程。
任何人都可以提出建议,如何在 Spring 批处理中实现多线程 我认为我们还应该注意作为 AutoWired 注入的成员变量。
请提出您的建议
我们已经使用 Executor 来实现这一点,我们做了以下事情,
- 找出执行时间较长的代码或部分代码。
- 分析过能不能用多线程。
- 将 Executor 与我们的 oven 框架结合使用,确保线程按顺序返回它是如何插入的。
- 将所有成员变量转换为依赖执行批处理的局部变量,因为这会导致多线程问题。
- 我们能够将所有 spring 批处理作业的总时间从 12 小时减少到 4 小时。
H