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这里指参数是否是唯一的或不是。