通过sprin批次传递一些关于条件的行

时间:2017-12-29 14:19:52

标签: java algorithm spring-batch

对不起,但对于一些人来说这可能是一个noob问题,但它只是在我脑海中浮现,我认为值得修改我的想法并得到一些专家的相关推荐。谢谢

我正在使用spring批处理来读取记录行,然后转换为新模型。

我的所有文件行都有这种格式:

propertie1 ; prop2 ; prop3 ; prop4 ; prop5

这个过程是这样的:我读了这行并将它传递给处理器做了somme的东西

我的问题是,我应该只向条目处理器传递具有以下条件的行:

If for the same value of property 5 there are 2 or more lines
- a line with prop 4 = 0 
- a line with prop 4 = 1 
and all values are identical (prop1, prop2, prop3 , ...)
send to the processor only the line which prp 4 = 1

因此,作为第一个解决方案,我想使用Map存储验证此条件的所有行,然后从该Map我将所有记录传递给处理器:

ALGO:

  1. 逐行阅读文件
  2. 将行存储在地图结构上,如下所示:[prop5,line]
  3. 如果新行具有相同的道具5(地图上存在关键字),并且具有相同的值,则i传递以测试道具4并仅存储值等于1的线。
  4. 在决赛中,我有一张地图,其中包含所有符合条件的行。
  5. 从该Map,进行迭代并将每条记录传递给处理器以继续转换
  6. 那么,我的算法是否正确,它最好的任何想法可以帮助我找到最好的软化和智能的其他解决方案?

1 个答案:

答案 0 :(得分:0)

对我来说似乎没问题,但你应该在你的步骤中使用块来避免内存不足异常。

Chunk reference