问题:读取大小 > 10 MB 的文件并使用 Spring Batch 将其加载到临时表中。我们如何在读取文件时保持状态,以便在作业失败时重新启动作业?
根据文档,FileItemReader 不是线程安全的,如果我们尝试使其成为线程安全的,我们最终会失去可重新启动性。所以基本问题是:
- 有没有办法以块的形式读取文件并且每个线程都知道它需要读取哪个块?
- 如果我们使读取同步,在这种情况下需要进行哪些更改才能使作业可重新启动?
如果有人遇到过类似的问题或对其表现有任何分析,将有助于我们做出决定。
此外,任何指针或示例代码都会受到赞赏。