java の batch 処理 を main メソッド に、
public static void main(String[] args) {
    // 頑張る...
}
Web 検索してみたところ、j-easy/easy-batch: The simple, stupid batch framework for Java というバッチフレームワークを見つけたので、どのような機能があるのか調べてみました。 
調べた結果を記載します。      
留意事項
この記事は、2015年12月に作成した後、2017年10月に補足説明を記載しました。  
リンク切れ箇所等がありましたので、各種リンク先の修正を行なっています。   
Java Batch FrameWork について
フレームワークについてまとめている方がいましたので、記事へのリンクを貼っておきます。 
Javaバッチ処理 フレームワーク(OSS)ざっくりまとめ - ぬるすぺいす遍在
記事中 に 記載されているものは以下になります。  
これらは、Job の構造を規定した framework フレームワークで、スケジュール実行、Job ネット構築については、他のライブラリやミドルウェアに任せる形になるかと思います。   
Batch FrameWork という言葉だと、スケジューラ機能を持つ framework と、Job の構造を規定した framework が一緒くたになってヒットする気がします。 
その他見つけたのは、スケジューラに関するものでした。    
スケジューラ系
- 
ScheduledTasks - 2.6.x 
 Playframework のスケジューラタスク機能。
- 
Quartz Enterprise Job Scheduler 
 Quartz Scheduler 日本語記事も多いです。
- 
jaredstehler/dropwizard-quartz: Simple Job Scheduler implementation for dropwizard, integrating Guice and Quartz. 
 Dropwizard の Scheduler plugin。
- 
Integrating Quartz With Spring - DZone Integration 
 SpringBoot と Quartz Scheduler を統合して使用する記事。
EasyBatch の説明
1. 概要
java の Batch フレームワークです。
Spring-Batch、JBatch と似たような機能を持っています。
サイトのどこかに機能比較ページがありましたが、Error 時にどこまで処理したか覚えておき、Retry 時にそこから実行する機能等は持ってなさそうです。1    
2017年10月時点だと、Jeasy : Jeasus, it’s easy.. 配下のライブラリになっており、その他以下のライブラリが存在します。  
ルールエンジンがStar数が多いですね。    
- 
j-easy/easy-rules: The simple, stupid rules engine for Java ルールエンジン 
- 
j-easy/easy-flows: The simple, stupid workflow engine for Java ワークフローエンジン 
- 
j-easy/easy-states: The simple, stupid state machine for Java 
 State machine
- 
j-easy/easy-props: The simple, stupid properties library for Java 
 プロパティ管理フレームワーク
- 
j-easy/easy-jobs: The simple, stupid job server for Java 
 Job管理用のRestフレームワーク
2. サイト
リンクが切れていたため、2017年10月にリンク先を変更しました。
- 
Github Repository 
 j-easy/easy-batch: The simple, stupid batch framework for Java
3. コア機能
以下は、2015年12月時点で、TopPage に記載されていた内容です。
- 
LIGHTWEIGHT FRAMEWORK 
 依存ライブラリがなく、ライブラリサイズが小さい。
- 
POJO-CENTRIC DEVELOPMENT 
 POJO 中心。
 RecordReader、Mapper、Processer 等が POJO 。
 戻り値として、カスタム DTO を用いることができる。2
- 
DECLARATIVE DATA VALIDATION 
 Validation によるデータ検証機能。
- 
PARALLEL EXECUTION 
 JOB を並列に実行する機能。
- 
JMX MONITORING 
 バッチ実行状況を JMX interface でモニタリングができる。
- 
MODULAR ARCHITECTURE 
 Batch 処理自体がモジュールの組み合わせで動作するため、モジュール単体を他の Batch で流用使用できる。 3
4. 公式なチュートリアルコード
リンクが切れていたため、2017年10月にリンク先を変更しました。  
easy-batch/easybatch-tutorials at master · j-easy/easy-batch  
使ってみようと思った経緯
使うに至る経緯を時系列で記載します。 
1. public static void main(String[] args) で直に Batch を書くのが辛くなってきた。   
2. google で java batch framework を検索したら、Spring Batch、jBatch がヒット。 
3. glassfish 上で動かす想定なので、jBatch で試しに実装をしてみる。    
4. xml を書くのが、辛いと感じるが頑張る。 
5. EntityManager を DI しようとしたら、guice が使えない。 
6. java - JSR-352 in Google Guice’d standalone batch - Stack Overflow を見る限り今のところ、やはり、CDI のみサポートしている。 
7. google で java batch framework light weight で検索したら、EasyBatch がヒット。  
8. guice で DI ができそう。且つ、xml 不要。       
まとめると
DI に guice を使っていて、JBatch だと 今のところ CDI しか使えなさそうな雰囲気を感じとり、EasyBatch を使うことにしました。4
実際書いたコード
後日、example を作成し記事にしました。version が 4.0.0 のものですが、よろしければご確認ください。   
Java EasyBatch 実装サンプルを作成してみました。 | Monotalk      
以上です。
コメント