Spring批处理,再次处理失败的文件,跳过成功处理
问题描述:
如何从思想上纠正组织文件处理?Spring批处理,再次处理失败的文件,跳过成功处理
我有一个新文件(新)文件夹,旧文件(旧)文件夹,失败文件文件夹(失败)。新文件放入NEW,如果处理正确,则文件转到OLD,如果处理失败,则文件转到ERR。然后我们再次获取这个文件并更正它,并且如果所有的ok文件都转到OLD,并且如果失败转到ERR,那么将它放入NEW。并重复一遍又一遍。
我有一个常量名为“fileHandlingJob”的作业,在作业中我有一些步骤:“提取”,“处理”,“利用”,我有作业参数:“filePath”,“fileName”。
谢谢!
答
如果你声明文件的唯一性标准 - 它是文件的名称,那么你是正确的。
如果作业处于FAILED状态(ERR文件夹),那么您可以使用同一组参数重新触发它。如果工作已完成 - 您无法再运行它。春季批次会投诉。
您可以通过将唯一文件名称作为作业参数来确保此行为。所以没有其他工作可以用相同的文件名触发。春季批次将简单地阻止这一点。 第二个参数filePath
可以是附加的非唯一参数。
JobParametersBuilder jobParametersBuilder = new JobParametersBuilder()
.addString("fileName", "myfile.xml", true)
.addDate("filePath", "C:\new\myfile.xml", false);
true
/false
这里指参数是否是唯一的或不是。