D
- 業務処理が処理する入力データの型@Published public abstract class BatchAction<D> extends BatchActionBase<D> implements Handler<D,Result>, DataReaderFactory<D>
1.以下の擬似コードは、本クラスの各メソッドが フレームワークによって呼び出される順序を表したものである。Handler
or doXXXX() メソッド (Method-Binding使用時) 2.DataReaderFactory
(必須) 3.ExecutionHandlerCallback
(任意)
CommandLine command; // バッチ起動時のコマンドライン ExecutionContext ctx; // 実行コンテキスト initialize(command, ctx); // バッチ処理開始前に一度だけ呼ばれる。 DataReaderまた、DBアクセス処理に関するテンプレートメソッドを実装したreader = createReader(ctx); // バッチ処理開始前に一度だけ呼ばれる。 Result result = null; try { while(reader.hasNext()) { // データリーダ上のレコードが終端に達するまで繰り返す。 TData data = reader.read(ctx); // 業務トランザクション1件分の入力データを読み込む。 try { result = handle(data, ctx); // 入力データ1件毎に繰り返し呼ばれる。 commit(); // 業務トランザクションをコミット transactionSuccess(data, ctx); // 業務トランザクションがコミットされた後で呼ばれる。 } catch(e) { rollback(); // 業務トランザクションをロールバック transactionFailure(data, ctx); // 業務トランザクションがロールバックされた後で呼ばれる。 throw e; } } } catch(e) { error(e, ctx); // バッチがエラー終了した場合に、一度だけ呼ばれる。 } finally { terminate(result, ctx) // バッチが終了した後、一度だけ呼ばれる。 }
DbAccessSupport
を本クラスが継承しているBatchActionBase
が実装しているため、簡便に業務処理を実装することができる。Constructor and Description |
---|
BatchAction()
BatchAction を生成する。 |
Modifier and Type | Method and Description |
---|---|
abstract DataReader<D> |
createReader(ExecutionContext ctx)
このタスクの入力データを読み込むデータリーダを生成して返す。
|
abstract Result |
handle(D inputData,
ExecutionContext ctx)
データリーダによって読み込まれた1件分の入力データに対する業務処理を実行する。
|
error, errorInExecution, initialize, postExecution, preExecution, terminate, transactionAbnormalEnd, transactionFailure, transactionNormalEnd, transactionSuccess, writeErrorLog, writeFatalLog, writeLog
countByParameterizedSql, countByStatementSql, getParameterizedSqlStatement, getParameterizedSqlStatement, getSqlCStatement, getSqlPStatement, search
public abstract Result handle(D inputData, ExecutionContext ctx)
public abstract DataReader<D> createReader(ExecutionContext ctx)
createReader
in interface DataReaderFactory<D>
ctx
- 実行コンテキスト