Java EE Batch Processingに触ってみた (2) - Batchlet -
reader/writer/processorを書かなくてもAbstractBatchlet(or Batchlet interface)を実装する事でも可能らしい。でもどっちかといえばクリーンアップ用途的な事で使うのがありっぽい(事実かどうかは曖昧)
SampleBatchlet.java
package sample;
import javax.batch.api.Batchlet;
import javax.batch.api.AbstractBatchlet;
public class SampleBatchlet extends AbstractBatchlet {
@Override
public String process() throws Exception {
// 返した値がジョブステータスになる(BATCH_JOB_EXECUTION)
// 不正なステータス値を突っ込んだ場合はCOMPLETEDになる模様
return "FAILED";
}
}
Batchletインターフェースを実装する場合だとstopメソッドも実装しなければならないけど、これはJobOperator.stopを呼ばない限りは実行されないのではないかと(APIリファレンスにそれっぽいことが)
META-INF/batch-jobs/sample.xml
<?xml version="1.0" encoding="UTF-8"?>
<job id="sample" xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="1.0">
<step id="sample-chunk" next="cleanup">
<chunk item-count="5">
<reader ref="sample.SampleItemReader" />
<writer ref="sample.SampleItemWriter" />
</chunk>
</step>
<step id="cleanup">
<batchlet ref="sample.SampleBatchlet" />
</step>
</job>
んまぁ簡易的なジョブだったりクリーンアップのような役割として使えばいいのではないかと