|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectjp.terasoluna.fw.batch.core.JobManager
public class JobManager
ジョブ等のフレームワークで規定する作業単位を管理、実行するクラス。
などの他の 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 Log |
log
ログインスタンス。 |
private java.lang.String |
name
ジョブマネジャー名。 |
private SupportProcessor |
postProcessor
ジョブ後処理を行うサポートプロセッサ。 |
private SupportProcessor |
preProcessor
ジョブ前処理を行うサポートプロセッサ。 |
private ThrowableHandler |
throwableHandler
Throwableハンドラ。 |
private WorkQueueFactory |
workQueueFactory
作業キューのファクトリ。 |
コンストラクタの概要 | |
---|---|
JobManager()
|
メソッドの概要 | |
---|---|
protected void |
finishWork(JobStatus parentJobStatus,
JobStatus jobStatus)
作業終了処理を行う。 |
protected 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 |
setThrowableHandler(ThrowableHandler throwableHandler)
Throwableハンドラを設定する。 |
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 |
フィールドの詳細 |
---|
private static final Log log
private Collector<JobContext> collector
private CollectorResultHandler collectorResultHandler
private WorkQueueFactory workQueueFactory
private java.lang.String name
private java.util.LinkedHashMap<JobException,JobExceptionHandler> exceptionHandlerMap
private JobExceptionHandler defaultJobExceptionHandler
private ThrowableHandler throwableHandler
private SupportProcessor preProcessor
private SupportProcessor postProcessor
コンストラクタの詳細 |
---|
public JobManager()
メソッドの詳細 |
---|
public void work(WorkUnit workUnit, JobStatus jobStatus)
Workable<WorkUnit>
内の work
workUnit
- 作業単位jobStatus
- ジョブステータスprotected void finishWork(JobStatus parentJobStatus, JobStatus jobStatus)
parentJobStatus
- 起動元のジョブステータスjobStatus
- このジョブマネージャのジョブステータスprotected void processCollect(JobContext jobContext, WorkQueue workQueue, JobStatus jobStatus)
jobContext
- ジョブコンテキストworkQueue
- 対象データ格納用キューjobStatus
- ジョブステータスpublic void setCollectorResultHandler(CollectorResultHandler collectorResultHandler)
collectorResultHandler
- 対象データ取得結果のハンドラpublic void setWorkQueueFactory(WorkQueueFactory workQueueFactory)
workQueueFactory
- 作業キューのファクトリpublic void setCollector(Collector<JobContext> collector)
collector
- コレクタpublic void setName(java.lang.String name)
name
- ジョブマネジャー名public void setPostProcessor(SupportProcessor postProcessor)
postProcessor
- ジョブ後処理を行うサポートプロセッサpublic void setPreProcessor(SupportProcessor preProcessor)
preProcessor
- ジョブ前処理を行うサポートプロセッサpublic void setExceptionHandlerMap(java.util.LinkedHashMap<JobException,JobExceptionHandler> exceptionHandlerMap)
exceptionHandlerMap
- 例外ハンドラ定義public void setDefaultJobExceptionHandler(JobExceptionHandler defaultJobExceptionHandler)
defaultJobExceptionHandler
- デフォルト例外ハンドラpublic void setThrowableHandler(ThrowableHandler throwableHandler)
throwableHandler
- Throwableハンドラprivate void writeStartLog(JobStatus jobStatus)
jobStatus
- ジョブステータスprivate void writeEndLog(JobStatus jobStatus)
jobStatus
- ジョブステータス
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |