目前我正在设计我的第一批使用弹簧批量的应用程序,使用多个tasklet和自己的读取器,编写器和处理器,主要进行输入数据检查和tif文件处理(拆分,合并等),具体取决于输入数据,即文档具有相关图像文件的元数据。我想在spring-batch作业库中的batch_step_execution_context中存储和使用重新启动信息persistet。不幸的是,我没有找到很多例子,以及如何做到这一点。我想让应用程序重新启动,以便它可以在它停止时纠正错误后继续。
到目前为止我做了什么并检查了如果出现异常,则步骤信息已经持续存在:
使用update()和open()在CustomItemWriter中实现ItemStream,以存储和从step_execution_context重新获取信息,例如: executionContext.putLong(" count",count)。效果很好。
使用了StepListeners,发现在beforeStep()中编写的上下文信息已经被持久化了。也有效。
我感谢能给出或指出一些例子的帮助,"重启教程"或者在读者,处理器,编写器和tasklet中读取如何操作的源。在读者和处理器中有意义吗?我知道处理重启信息也可能依赖于commit-interval,restartable flags等。
备注:也许我需要对弹跳批量概念有更深入的了解,而不是我到目前为止所阅读和尝试的内容。关于这一点的提示也是受欢迎的。我认为自己是缺乏细节的中间水平,使我的应用程序使用一些弹簧批次的舒适。