如何基于没有行分割弹簧批处理文件?

时间:2017-01-03 05:30:53

标签: spring-batch file-read file-processing

我有一个这样的文件:abc.txt

ProxyPass /tty/socket.io/1/websocket/ ws://localhost:8080/socket.io/1/websocket/
ProxyPassReverse /tty/socket.io/1/websocket/ ws://localhost:8080/socket.io/1/websocket/

我想以可配置的方式使用Spring Batch拆分此文件,并以多线程方式读取文件。

例如,如果我们分成4行。

线程1将处理

1 fhdfjdkslk
2 jskslsss
3 iowiwjwm
4 jwkwlwo
5 uuwwwmwaa
6 sbnsbshj
7 yywuiwoiw
8 dhdhgsgs
9 sgsgsgs
10 uwuwqmksam

线程2将处理

1 fhdfjdkslk
2 jskslsss
3 iowiwjwm
4 jwkwlwo    

线程3将处理

5 uuwwwmwaa
6 sbnsbshj
7 yywuiwoiw
8 dhdhgsgs

最后,所有3个线程的输出将在Spring Batch作业的最后一步中合并。

如果每组只包含一行,我就能实现这一目标。

如果每个集合在Spring Batch中包含多行,我该如何实现?

1 个答案:

答案 0 :(得分:2)

您可以自己编写SystemCommandTasklet。此tasklet用于执行系统命令。您可以使用split命令拆分文件。随后,您可以使用分区程序执行单独文件的处理。

有关此tasklet的更多信息Here