首页 > 解决方案 > 如何重新启动失败的spring批处理csv插入mysql?

问题描述

我有一个简单的项目,用于将 csv 文件处理到 mysql 中。我的问题是哪一种是处理失败插入恢复的智能方法。例如,在一个 100 行的文件中,我插入了 10 行,然后 vm 崩溃,当我重新启动应用程序时,它会再次插入所有行,但我要从 11 开始。我正在分块处理文件。

问候

标签: spring-bootspring-batch

解决方案


假设您正在关注类似于https://spring.io/guides/gs/batch-processing/的 Spring Batch 项目,那么您可以遵循有关作业可重启性的各种规则。Spring Batch 将跟踪您的工作进度(例如已经提交了多少块),因此在失败的情况下您可以从中断的地方恢复。

在更详细的信息中,Spring Batch元数据表会跟踪您的工作的详细信息,包括每个步骤中的commit_count。这些详细信息在完成后会保留在您的数据库中,因此即使在灾难恢复之后重新启动时,有关您的作业的数据也将可用。


推荐阅读