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

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

public class JobManager
extends java.lang.Object
implements Workable<WorkUnit>

ジョブ等のフレームワークで規定する作業単位を管理、実行するクラス。

JobWorker などの他の Workable インタフェースの実装クラスと共に、作業の階層構造を構成する。JobManager は、作業の階層構造の中で入力処理とその入力に対応する処理を管理する。 JobManager は、作業階層の中でジョブに対応する作業を実行するだけ でなく、これらの"入力処理とその入力に対応する処理"で構成されるすべての作業を 実行する。

作業の階層の中で、もっとも最下層(もっとも小さな作業単位)の作業は JobWorkerによって行われるが、JobWorker を入力処理と 結びつけて管理する作業はJobManager が行う。さらには、分割ジョブ など、JobManagerをその入力を結びつける必要がある場合には、 上位階層の JobManager によって、入力処理とその入力を処理する JobManager が結び付けられる。

作業階層は、Workable インタフェースの実装クラスが階層的に 積み上げられたコンポジットな構造になっている。JobManager は、 最下層以外の部分を構成する。

キューの作成、コレクタ呼び出し

JobManager では、workQueueFactory 属性に 設定されている作業キューファクトリから、入力処理と、その入力を処理する作業の 間のキューを取得する。

取得したキューは、入力処理を行う collector 属性のコレクタに 渡される。また、このクラスでは、コレクタの処理結果ハンドラの呼び出しと、 これらの入力処理で例外が発生した場合の例外ハンドラ呼び出しを行う。

終了時の処理

コレクタによる入力処理、および作業キューにキューイングされた作業のすべての 終了を待ったあとで、このクラスの処理はリターンする。このクラスの処理から リターンする際には、ジョブステータスが実行中(JobStatus.STATE.STARTED 、あるいはJobStatus.STATE.RESTARTED)である場合には正常終 了(JobStatus.STATE.ENDING_NORMALLY)に更新する。

前処理

コレクタによる入力処理の起動が行われる前に、preProcessor 属性 に設定されたサポートプロセッサによって前処理が行われる。前処理が行われた後で 、ジョブステータスのチェックが行われる。ジョブステータスが継続状態でない場合 には、コレクタによる入力処理などは起動されず、直ちにこのクラスからリターンす る。

後処理

コレクタによる入力処理、および作業キューにキューイングされた作業が終わった 後では、postProcessor 属性に設定されたサポートプロセッサによって 後処理が行われる。コレクタによる入力処理、および作業キューにキューイングされ た作業によってジョブステータスが正常終了、異常終了などの終了状態に更新されて いた場合には、ジョブ後処理は起動されない。


フィールドの概要
private  Collector<JobContext> collector
          コレクタ。
private  CollectorResultHandler collectorResultHandler
          対象データ取得結果のハンドラ。
private  JobExceptionHandler defaultJobExceptionHandler
          デフォルト例外ハンドラ。
private  java.util.LinkedHashMap<JobException,JobExceptionHandler> exceptionHandlerMap
          例外ハンドラ定義。
private static org.apache.commons.logging.Log log
          ログインスタンス。
private  java.lang.String name
          ジョブマネジャー名。
private  SupportProcessor postProcessor
          ジョブ後処理を行うサポートプロセッサ。
private  SupportProcessor preProcessor
          ジョブ前処理を行うサポートプロセッサ。
private  WorkQueueFactory workQueueFactory
          作業キューのファクトリ。
 
コンストラクタの概要
JobManager()
           
 
メソッドの概要
protected  void finishWork(JobStatus parentJobStatus, JobStatus jobStatus)
          作業終了処理を行う。
private  void processCollect(JobContext jobContext, WorkQueue workQueue, JobStatus jobStatus)
          対象データ取得を行う。
 void setCollector(Collector<JobContext> collector)
          コレクタを設定する。
 void setCollectorResultHandler(CollectorResultHandler collectorResultHandler)
          対象データ取得結果のハンドラを設定する。
 void setDefaultJobExceptionHandler(JobExceptionHandler defaultJobExceptionHandler)
          デフォルト例外ハンドラを設定する。
 void setExceptionHandlerMap(java.util.LinkedHashMap<JobException,JobExceptionHandler> exceptionHandlerMap)
          例外ハンドラ定義を設定する。
 void setName(java.lang.String name)
          ジョブマネジャー名を設定する。
 void setPostProcessor(SupportProcessor postProcessor)
          ジョブ後処理を行うサポートプロセッサを設定する。
 void setPreProcessor(SupportProcessor preProcessor)
          ジョブ前処理を行うサポートプロセッサを設定する。
 void setWorkQueueFactory(WorkQueueFactory workQueueFactory)
          作業キューのファクトリを設定する。
 void work(WorkUnit workUnit, JobStatus jobStatus)
          作業を行う。
private  void writeEndLog(JobStatus jobStatus)
          JobManagerの終了ログを出力する。
private  void writeStartLog(JobStatus jobStatus)
          JobManagerの開始ログを出力する。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

log

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


collector

private Collector<JobContext> collector
コレクタ。


collectorResultHandler

private CollectorResultHandler collectorResultHandler
対象データ取得結果のハンドラ。


workQueueFactory

private WorkQueueFactory workQueueFactory
作業キューのファクトリ。


name

private java.lang.String name
ジョブマネジャー名。


exceptionHandlerMap

private java.util.LinkedHashMap<JobException,JobExceptionHandler> exceptionHandlerMap
例外ハンドラ定義。例外をキーとして、キーの例外に対応する例外ハンドラを 設定する。


defaultJobExceptionHandler

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


preProcessor

private SupportProcessor preProcessor
ジョブ前処理を行うサポートプロセッサ。


postProcessor

private SupportProcessor postProcessor
ジョブ後処理を行うサポートプロセッサ。

コンストラクタの詳細

JobManager

public JobManager()
メソッドの詳細

work

public void work(WorkUnit workUnit,
                 JobStatus jobStatus)
作業を行う。

定義:
インタフェース Workable<WorkUnit> 内の work
パラメータ:
workUnit - 作業単位
jobStatus - ジョブステータス

finishWork

protected void finishWork(JobStatus parentJobStatus,
                          JobStatus jobStatus)
作業終了処理を行う。

パラメータ:
parentJobStatus - 起動元のジョブステータス
jobStatus - このジョブマネージャのジョブステータス

processCollect

private void processCollect(JobContext jobContext,
                            WorkQueue workQueue,
                            JobStatus jobStatus)
対象データ取得を行う。

パラメータ:
jobContext - ジョブコンテキスト
workQueue - 対象データ格納用キュー
jobStatus - ジョブステータス

setCollectorResultHandler

public void setCollectorResultHandler(CollectorResultHandler collectorResultHandler)
対象データ取得結果のハンドラを設定する。

パラメータ:
collectorResultHandler - 対象データ取得結果のハンドラ

setWorkQueueFactory

public void setWorkQueueFactory(WorkQueueFactory workQueueFactory)
作業キューのファクトリを設定する。

パラメータ:
workQueueFactory - 作業キューのファクトリ

setCollector

public void setCollector(Collector<JobContext> collector)
コレクタを設定する。

パラメータ:
collector - コレクタ

setName

public void setName(java.lang.String name)
ジョブマネジャー名を設定する。

パラメータ:
name - ジョブマネジャー名

setPostProcessor

public void setPostProcessor(SupportProcessor postProcessor)
ジョブ後処理を行うサポートプロセッサを設定する。

パラメータ:
postProcessor - ジョブ後処理を行うサポートプロセッサ

setPreProcessor

public void setPreProcessor(SupportProcessor preProcessor)
ジョブ前処理を行うサポートプロセッサを設定する。

パラメータ:
preProcessor - ジョブ前処理を行うサポートプロセッサ

setExceptionHandlerMap

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

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

setDefaultJobExceptionHandler

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

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

writeStartLog

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

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

writeEndLog

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

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