jp.terasoluna.fw.batch.core
クラス JobWorker

java.lang.Object
  上位を拡張 jp.terasoluna.fw.batch.core.JobWorker
すべての実装されたインタフェース:
Workable<Chunk>
直系の既知のサブクラス:
ControlBreakWorker

public class JobWorker
extends java.lang.Object
implements Workable<Chunk>

Chunk を処理単位として、Chunk が持つデータを入力 とするビジネスロジックを実行する。

ジョブを構成する Workable インタフェースの実装の階層構造 において、最も最下層(最も小さな作業単位)に位置する。JobWorker は、Chunk に含まれるすべてのデータに対して、 繰り返しビジネスロジックを起動する。

ビジネスロジックの起動の際には、Chunk に含まれる JobContext が渡される。 ビジネスロジックの実行は、blogicExecutor 属性に設定されている ビジネスロジック実行クラスのインスタンスに委譲される。

JobWorker では、Chunk に含まれるすべてのデータに 渡って、バッチ更新リストが保持される。バッチ更新リストは、 ビジネスロジックからバッチ更新の依頼がある毎に随時追加される。 バッチ更新リストは、Chunkに含まれるすべてのデータに対する ビジネスロジックの実行が終了した後、処理される。 ただし、バッチ更新リストの処理は、batchUpdateResultHandler 属性に設定されているバッチ更新プロセッサに委譲される。

バッチ更新プロセッサを起動後に、バッチ更新の処理結果をジョブステータスへの 反映や、ログ出力などが行えるように batchUpdateResultHandler 属性に設定されたバッチ更新処理結果ハンドラが起動される。

バッチ更新プロセッサ、およびバッチ更新処理結果ハンドラで例外が発生した 場合には、例外ハンドラによって処理される。例外ハンドラは、 exceptionHandlerMap属性に設定されている例外ハンドラ定義から 取得する。バッチ更新プロセッサ、およびバッチ更新処理結果で例外が発生した場合 のハンドラ例外ハンドラには、BatchUpdateException 例外をキーと して定義されているものが使われる。

例外ハンドラ定義から、BatchUpdateException 例外をキーをとする 例外ハンドラが取得できなかった場合には、 defaultJobExceptionHandler属性に設定されている デフォルト例外ハンドラが、例外処理に使われる。


フィールドの概要
protected  BatchUpdateProcessor batchUpdateProcessor
          バッチ更新プロセッサ。
protected  BatchUpdateResultHandler batchUpdateResultHandler
          バッチ更新の処理結果ハンドラ。
private  BLogicExecutor blogicExecutor
          ビジネスロジック実行クラスのインスタンス。
protected  JobExceptionHandler defaultJobExceptionHandler
          デフォルト例外ハンドラ。
protected  java.util.LinkedHashMap<JobException,JobExceptionHandler> exceptionHandlerMap
          例外ハンドラを格納したMap。
private static org.apache.commons.logging.Log log
          ログインスタンス。
 
コンストラクタの概要
JobWorker()
           
 
メソッドの概要
protected  void processBatchUpdate(JobContext jobContext, JobStatus jobStatus, java.util.List<java.util.LinkedHashMap<java.lang.String,java.lang.Object>> batchUpdateMapList)
          バッチ更新を行う。
 void setBatchUpdateProcessor(BatchUpdateProcessor batchUpdateProcessor)
          バッチ更新用クラスのインスタンスを設定する。
 void setBatchUpdateResultHandler(BatchUpdateResultHandler batchUpdateResultHandler)
          バッチ更新の処理結果ハンドラを設定する。
 void setBlogicExecutor(BLogicExecutor blogicExecutor)
          ビジネスロジック実行用クラスのインスタンスを設定する。
 void setDefaultJobExceptionHandler(JobExceptionHandler defaultJobExceptionHandler)
          デフォルト例外ハンドラを設定する。
 void setExceptionHandlerMap(java.util.LinkedHashMap<JobException,JobExceptionHandler> exceptionHandlerMap)
          例外ハンドラ定義を設定する。
 void work(Chunk chunk, JobStatus jobStatus)
          Chunk を処理する。
private  void writeEndLog(JobStatus jobStatus)
          JobWorkerの終了ログを出力する。
private  void writeStartLog(JobStatus jobStatus)
          JobWorkerの開始ログを出力する。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

log

private static org.apache.commons.logging.Log log
ログインスタンス。


exceptionHandlerMap

protected java.util.LinkedHashMap<JobException,JobExceptionHandler> exceptionHandlerMap
例外ハンドラを格納したMap。


defaultJobExceptionHandler

protected JobExceptionHandler defaultJobExceptionHandler
デフォルト例外ハンドラ。


batchUpdateProcessor

protected BatchUpdateProcessor batchUpdateProcessor
バッチ更新プロセッサ。


batchUpdateResultHandler

protected BatchUpdateResultHandler batchUpdateResultHandler
バッチ更新の処理結果ハンドラ。


blogicExecutor

private BLogicExecutor blogicExecutor
ビジネスロジック実行クラスのインスタンス。

コンストラクタの詳細

JobWorker

public JobWorker()
メソッドの詳細

work

public void work(Chunk chunk,
                 JobStatus jobStatus)
Chunk を処理する。

定義:
インタフェース Workable<Chunk> 内の work
パラメータ:
chunk - 処理対象データを格納したチャンク
jobStatus - ジョブステータス

processBatchUpdate

protected void processBatchUpdate(JobContext jobContext,
                                  JobStatus jobStatus,
                                  java.util.List<java.util.LinkedHashMap<java.lang.String,java.lang.Object>> batchUpdateMapList)
バッチ更新を行う。

パラメータ:
jobContext - ジョブコンテキスト
jobStatus - ジョブ処理状況
batchUpdateMapList - バッチ更新リスト

setExceptionHandlerMap

public void setExceptionHandlerMap(java.util.LinkedHashMap<JobException,JobExceptionHandler> exceptionHandlerMap)
例外ハンドラ定義を設定する。

パラメータ:
exceptionHandlerMap - 例外ハンドラ定義

setBatchUpdateProcessor

public void setBatchUpdateProcessor(BatchUpdateProcessor batchUpdateProcessor)
バッチ更新用クラスのインスタンスを設定する。

パラメータ:
batchUpdateProcessor - バッチ更新用クラスのインスタンス

setBlogicExecutor

public void setBlogicExecutor(BLogicExecutor blogicExecutor)
ビジネスロジック実行用クラスのインスタンスを設定する。

パラメータ:
blogicExecutor - ビジネスロジック実行用クラスのインスタンス

setBatchUpdateResultHandler

public void setBatchUpdateResultHandler(BatchUpdateResultHandler batchUpdateResultHandler)
バッチ更新の処理結果ハンドラを設定する。

パラメータ:
batchUpdateResultHandler - バッチ更新の処理結果ハンドラ

setDefaultJobExceptionHandler

public void setDefaultJobExceptionHandler(JobExceptionHandler defaultJobExceptionHandler)
デフォルト例外ハンドラを設定する。

パラメータ:
defaultJobExceptionHandler - デフォルト例外ハンドラ

writeStartLog

private void writeStartLog(JobStatus jobStatus)
JobWorkerの開始ログを出力する。

パラメータ:
jobStatus - ジョブステータス

writeEndLog

private void writeEndLog(JobStatus jobStatus)
JobWorkerの終了ログを出力する。

パラメータ:
jobStatus - ジョブステータス