2017-01-03 19 views
0

У меня есть файл, как это: abc.txtКак разбить файл в весеннюю партию на основе строк?

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

Я хочу разделить этот файл, используя Spring Batch в настраиваемым способом и прочитать файл в многопоточном способом.

Например, если мы разделим на 4 строки.

резьба 1 будет обрабатывать

1 fhdfjdkslk 
2 jskslsss 
3 iowiwjwm 
4 jwkwlwo  

резьба 2 будет обрабатывать

5 uuwwwmwaa 
6 sbnsbshj 
7 yywuiwoiw 
8 dhdhgsgs 

резьба 3 будет обрабатывать

9 sgsgsgs 
10 uwuwqmksam 

Наконец выход из всех 3-х нитей будет объединен в последний шаг весеннего пакетного задания.

Я смог достичь этого, если каждый набор содержит только 1 строку.

Как достичь этого, если каждый набор содержит несколько строк в Spring Batch?

+0

Будьте осторожны, потому что FlatFileItemReader не поточно, потому что он поддерживает состояние в виде ResourceLineReader. Будьте осторожны при настройке FlatFileItemReader с использованием соответствующей фабрики или области действия, чтобы она не делилась между потоками. –

+0

Насколько велик файл? –

+0

Размер файла около 12GB. Около 10-12 миллионов строк в файле. – IndrajitDatta

ответ

0

Вы можете написать свой собственный SystemCommandTasklet. Эта задача используется для выполнения системной команды. Вы можете использовать команду split для разделения файлов. Впоследствии вы можете использовать разделитель для выполнения обработки отдельных файлов.

Больше информации об этом тасклет Here