|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectjp.terasoluna.fw.batch.core.JobWorker
public class JobWorker
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
ログインスタンス。 |
private ThrowableHandler |
throwableHandler
Throwableハンドラ。 |
コンストラクタの概要 | |
---|---|
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 |
setThrowableHandler(ThrowableHandler throwableHandler)
Throwableハンドラを設定する。 |
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 |
フィールドの詳細 |
---|
private static final org.apache.commons.logging.Log log
protected java.util.LinkedHashMap<JobException,JobExceptionHandler> exceptionHandlerMap
protected JobExceptionHandler defaultJobExceptionHandler
private ThrowableHandler throwableHandler
protected BatchUpdateProcessor batchUpdateProcessor
protected BatchUpdateResultHandler batchUpdateResultHandler
private BLogicExecutor blogicExecutor
コンストラクタの詳細 |
---|
public JobWorker()
メソッドの詳細 |
---|
public void work(Chunk chunk, JobStatus jobStatus)
Chunk
を処理する。
JobWorker
では、Chunk
に含まれる
すべてのデータに渡って、バッチ更新リストが保持される。
バッチ更新リストは、ビジネスロジックからバッチ更新の依頼がある毎に
随時追加される。
バッチ更新リストは、Chunk
に含まれるすべてのデータに対する
ビジネスロジックの実行が終了した後、処理される。
ただし、バッチ更新リストの処理は、batchUpdateResultHandler
属性に設定されているバッチ更新プロセッサに委譲される。
チャンクに含まれるデータを処理中にジョブステータスが強制終了中
(JobStatus.STATE.INTERRUPTED_FOR_IMMEDIATE_SHUTDOWN
)
に更新された場合、
処理状態を強制終了(JobStatus.STATE.SUSPENDING
) にして、
チャンクの処理を中断する。
チャンクに含まれるデータを処理中にジョブステータスが中断終了中
(JobStatus.STATE.INTERRUPTED_FOR_GRACEFUL_SHUTDOWN
)
に更新された場合
処理状態を変更せずに、チャンクの処理を継続する。
Workable<Chunk>
内の work
chunk
- 処理対象データを格納したチャンクjobStatus
- ジョブステータスprotected void processBatchUpdate(JobContext jobContext, JobStatus jobStatus, java.util.List<java.util.LinkedHashMap<java.lang.String,java.lang.Object>> batchUpdateMapList)
jobContext
- ジョブコンテキストjobStatus
- ジョブ処理状況batchUpdateMapList
- バッチ更新リストpublic void setExceptionHandlerMap(java.util.LinkedHashMap<JobException,JobExceptionHandler> exceptionHandlerMap)
exceptionHandlerMap
- 例外ハンドラ定義public void setBatchUpdateProcessor(BatchUpdateProcessor batchUpdateProcessor)
batchUpdateProcessor
- バッチ更新用クラスのインスタンスpublic void setBlogicExecutor(BLogicExecutor blogicExecutor)
blogicExecutor
- ビジネスロジック実行用クラスのインスタンスpublic void setBatchUpdateResultHandler(BatchUpdateResultHandler batchUpdateResultHandler)
batchUpdateResultHandler
- バッチ更新の処理結果ハンドラpublic void setDefaultJobExceptionHandler(JobExceptionHandler defaultJobExceptionHandler)
defaultJobExceptionHandler
- デフォルト例外ハンドラprivate void writeStartLog(JobStatus jobStatus)
jobStatus
- ジョブステータスprivate void writeEndLog(JobStatus jobStatus)
jobStatus
- ジョブステータスpublic void setThrowableHandler(ThrowableHandler throwableHandler)
throwableHandler
- Throwableハンドラ
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |