Spring Batch 6 で、だんだん増えていく固定長レコードを処理する(1)[コンピュータ]
(2026-07-01 07:42:22) by shinoda
ふう。Gemini に聞きながら、何とか以下のような仕様のバッチ処理完成。
■仕様(簡単に)
・Spring Batch 6(Spring Boot 4)で実行されるバッチ
・DBはとりあえず H2で
・複数の固定長ファイルを読み込み、項目ごとに分割しDBに登録する
・複数の固定長ファイルのパスはひとつのファイル(files.txt)に記述されている
・固定長ファイルのレコード数は追加されていく
・1秒ごとにファイルを全てチェックし、レコード数が増えていれば増えたレコードを読み込む
例えばどんどん新しい行(ラップタイム)がレース終了まで追加されていく周回レースの集計データの処理などを想定している。
(ゴールだけではなく、周回するコースの途中に設置された複数の計測機器(中間計測機)からのデータ(それぞれ別のネットワークストレージ上に計測データを吐いている(ただし、バッチ処理を行うPCには共有されている))を一括でDB登録するイメージ)
■処理対象のファイル一覧ファイル(C:\work\files.txt)
C:\work\test1.txt
C:\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 が大文字だけになっている点などは、またソースの説明のときに・・・
コメント投稿
次の記事へ >
< 前の記事へ
TOPへ戻る
Powered by
MT4i 3.0.8