Java EE Batch Processingに触ってみた (2) - Batchlet -

2015-01-05T00:00:00+09:00 Java Java EE

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>

んまぁ簡易的なジョブだったりクリーンアップのような役割として使えばいいのではないかと

angular.resumeBootstrapの再考 Spring Batchの設定ファイルに関して