ふう。Gemini に聞きながら、何とか以下のような仕様のバッチ処理完成。
■仕様(簡単に)
・Spring Batch 6(Spring Boot 4)で実行されるバッチ・DBはとりあえず H2で・複数の固定長ファイルを読み込み、項目ごとに分割しDBに登録する・複数の固定長ファイルのパスはひとつのファイル(files.txt)に記述されている・固定長ファイルのレコード数は追加されていく・1秒ごとにファイルを全てチェックし、レコード数が増えていれば増えたレコードを読み込む
例えばどんどん新しい行(ラップタイム)がレース終了まで追加されていく周回レースの集計データの処理などを想定している。
(ゴールだけではなく、周回するコースの途中に設置された複数の計測機器(中間計測機)からのデータ(それぞれ別のネットワークストレージ上に計測データを吐いている(ただし、バッチ処理を行うPCには共有されている))を一括でDB登録するイメージ)
■処理対象のファイル一覧ファイル(C:\work\files.txt)
C:\work\test1.txtC:\work\test\test2.txt
■データファイル1(C:\work\test1.txt)
A001SHINODA Masanori 12 A002SHINODA Nyunyumi 18
あとで、
C023Shiranui Shinobu 123
が追加される(手動で(笑))
■データファイル2(C:\work\test\test2.txt)
B001Tanaka Ichiro 68 B122Yamamoto Ahomaru 48 B245Yamamoto Murishi 47
あとで、
D100Shinoda Gengoromaru 5
が追加される(手動で(笑))
■データの構成(固定長)
ユーザID(code)... 1~4桁目(4桁)ユーザ名(name)... 5~24桁目(20桁)年齢(value)... 25~27桁(3桁)※テーブルの項目名は data_value(value は H2データベースの予約語のため)
実際にこのようなデータを準備し、作成したバッチ処理を実行すると、DBにデータが登録される。
H2 コンソールで確認すると、最初の 5件+追加の 2件の計 7件のデータが登録されているのがわかる。
自動採番している id が途中で飛んでいることや、データは大文字小文字混在だった name が大文字だけになっている点などは、またソースの説明のときに・・・

コメントする