Springでバッチ処理 | 長谷川 裕一氏

最近のSpringはお金儲け的な話題ばかり。 ロッドジョンソンは4月くらいに日本に来るそうです。

バージョンが2になってから、XML地獄から開放されて、 アノテーションでいろいろできるようになった。 Autowiredとか、そんなに簡単なんだーって。 JSR-250のサポートによって、AOP的なことが出来たりするみたい。 オブジェクトのライフサイクル管理もアノテーションで出来たり。

最近、この辺、全然ついてけてないな。。。

で、バッチの話。

Quartz →日時や曜日で起動可能なジョブスケジューラ  バッチだとSpringは未だBean定義ファイルのXML地獄。  QuartzはBean定義の中にスケジュール情報を書く漢字。  秒での設定ができるからCronより細かい。  QuartzJobBeanってのを継承して使う  ExecuteInternalメソッドで実行  # ジョブ同士の依存関係とかの設定はできなさそう・・・?

・SpringBatch →宣伝は派手だったが、、、ガッカリした内容だそうで。  アクセンチュアと一緒に作ったものらしい。  HelloWorldするのに、パワポで10枚とかのXMLが必要らしい。  ジョブ管理システム的なものも提供されていないそうです。

TerasolunaのバッチFW →SpringとiBatis。こっちのがSpringBatchより100倍いいんでね?という巷の噂。  入力と処理が分割されてマルチスレッドで。  キューイング的な形で処理ごとにチャンクの概念  入力、出力のどちらかでI/O待ちとか発生しても、バラバラでひっぱられずに動く。  # 昔Terasoluna使ってたので、愛着あったりします。  # その時はまだTerasolunaにバッチFWはなかったけど、  # データさんが作ったバッチFWはエンプラ臭がするものでした。

・Maia →ユニシスフレームワークの一部  Struts+Spring+Hibernate。一般に向けての公開はされていない。  Springのリモート接続機能ででAPサーバ上のアプリを実行したり(同じコンポーネントが使える)  # セッションに参加してる人でMaiaの開発者がいたので、  # その人が突然振られて紹介してくれました。


多重化とか、ジョブ同士の依存とか、コード見ながらのより実践的なセッションを期待してたので。 ちょっと消化不良気味でした。。

自分のとこでは、今、Seasar2でバッチ書いてますが、 S2DAOを使ってるところ以外が、それならperlでも良かったんじゃない?的な感じに なっちゃって、S2でバッチやってる人の話とかも聞いてみたかったりする今日この頃です。