jp.terasoluna.fw.batch.springsupport.init
クラス JobExecutor

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

public class JobExecutor
extends java.lang.Object
implements Workable<AbstractJobControlInfo>

ジョブ起動用メインクラス。
本クラスのexecute()メソッドで同期型ジョブの実行を、
work()メソッドで非同期型ジョブの実行を行う。
また、ジョブ起動前のJobBeanFactoryの生成や、 ジョブ起動後の破棄処理を行う。
ジョブBean定義ファイルにてuseCacheTRUEに設定した 場合、非同期実行の際に生成されたJobBeanFactoryはキャッシュされ、 同じジョブが実行された場合はキャッシュしたJobBeanFactoryを 再利用する。


フィールドの概要
private  JobContext.START_TYPE async
          非同期起動有無フラグ。
protected static java.lang.String DATA_ACCESS_CONTEXT_DEFINITION_NAME
          データアクセス用Bean定義ファイル名。
private static java.lang.String ENDFILECHECKER_NAME
          ジョブ終了監視用Bean名。
private static java.lang.String EXITCODE_MAP
          デフォルト終了コード。
private static java.lang.String FRAMEWORK_BEAN_DEFINITION_NAME
          フレームワークBean定義ファイル名。
private  ConfigurableApplicationContext frameworkFactory
          フレームワークBeanFactory。
private static java.lang.String JOBCONTEXT_NAME
          ジョブコンテキストBean名。
private  java.util.Map<java.lang.String,java.lang.String> jobExitCodeMap
          デフォルトのジョブ終了コードのマップ。
private  java.util.Map<java.lang.String,ConfigurableApplicationContext> jobFactoryMap
          ジョブBeanFactoryのキャッシュ用Map。
private static java.lang.String JOBMANAGER_NAME
          ジョブマネージャBean名。
private  java.lang.String jobParametersSplitStr
          ジョブパラメータの区切り文字。
protected static java.lang.String JOBSTATUS_NAME
          ジョブ状況用Bean名。
protected static java.lang.String JOBSTATUS_SUMMARIZER
          処理状態のサマライザ。
private static Log log
          ログインスタンス。
protected static java.lang.String MONITORABLE_JOBSTATUS_NAME
          モニター用ジョブ状況用Bean名。
private  SupportProcessor postJobProcessor
          ジョブ後処理用インスタンス。
private  SupportProcessor preJobProcessor
          ジョブ前処理用インスタンス。
private static java.lang.String THREAD_POOL_DEFINITION_NAME
          スレッドプール用Bean定義ファイル名。
private  ThrowableHandler throwableHandler
          Throwableハンドラ。
private static java.lang.String THROWABLEHANDLER_NAME
          Throwableハンドラ用Bean名。
protected static java.lang.String USE_MONITORABLE
          ジョブ監視用Bean名。
protected static java.lang.String USECACHE_NAME
          キャッシュ有無用Bean名。
protected static java.lang.String VALIDATE_DEFINITION_NAME
          スレッドプール用Bean定義ファイル名。
 
コンストラクタの概要
protected JobExecutor()
          コンストラクタ。
protected JobExecutor(java.lang.String[] beanFileName)
          コンストラクタ。
 
メソッドの概要
private  void checkJobInfo(JobInfo jobInfo)
          英数字文字列であるかをチェックする。
 void destroy()
          作成したBeanFactoryの破棄処理を行う。
protected  JobStatus execute(JobInfo jobInfo)
          ジョブを実行する。
protected  ConfigurableApplicationContext getFrameworkFactory()
          フレームワークBeanFactoryの取得
protected  ConfigurableApplicationContext getJobBeanFactory(JobInfo jobInfo)
          ジョブ毎のBeanFactoryを取得するメソッド。
protected  JobContext getJobContext(ConfigurableApplicationContext jobFactory, JobInfo jobInfo)
          ジョブコンテキストの取得。
protected  Workable<WorkUnit> getJobManager(ConfigurableApplicationContext jobFactory)
          ジョブマネージャを取得する。
protected  JobStatus getJobStatus(ConfigurableApplicationContext jobFactory, JobInfo jobInfo)
          ジョブ処理状態格納用JobStatusを取得する。
protected  WorkUnit getWorkUnit(JobContext jobContext)
          WorkUnitを生成し、ジョブコンテキストを設定する。
private  void initDefaultJobExitCodeMap()
          ジョブ終了コードのマップを初期化する。
protected  void initEndFileChecker(JobStatus jobStatus, JobContext jobContext)
          終了ファイル監視スレッドの初期化を行う。
protected  boolean isAsync()
          非同期ジョブ起動であるかを評価する。
protected  void printEndLog(JobStatus jobStatus)
          ジョブの開始ログを出力する。
protected  void printStartLog(JobInfo jobInfo)
          ジョブの開始ログを出力する。
protected  void removeJobStatusFromEndFileChecker(JobStatus jobStatus, JobContext jobContext)
          終了ファイル監視スレッドに登録されたジョブの処理状態を削除する。
 void setAsync(boolean async)
          非同期起動有無フラグを設定する。
protected  void setDefaultJobExitCode(JobStatus jobStatus)
          ジョブ終了コードを設定する。
 void setJobParametersSplitStr(java.lang.String jobParametersSplitStr)
          ジョブパラメータの区切り文字を設定する。
 void setPostJobProcessor(SupportProcessor postJobProcessor)
          ジョブ起動前処理を設定する。
 void setPreJobProcessor(SupportProcessor preJobProcessor)
          ジョブ起動後処理を設定する。
 void setThrowableHandler(ThrowableHandler throwableHandler)
          Throwableハンドラを設定する。
 void work(AbstractJobControlInfo jobInfo, JobStatus jobStatus)
          非同期型ジョブ起動時のワーカメソッド。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

log

private static final Log log
ログインスタンス。


FRAMEWORK_BEAN_DEFINITION_NAME

private static final java.lang.String FRAMEWORK_BEAN_DEFINITION_NAME
フレームワークBean定義ファイル名。

関連項目:
定数フィールド値

DATA_ACCESS_CONTEXT_DEFINITION_NAME

protected static final java.lang.String DATA_ACCESS_CONTEXT_DEFINITION_NAME
データアクセス用Bean定義ファイル名。

関連項目:
定数フィールド値

THREAD_POOL_DEFINITION_NAME

private static final java.lang.String THREAD_POOL_DEFINITION_NAME
スレッドプール用Bean定義ファイル名。

関連項目:
定数フィールド値

VALIDATE_DEFINITION_NAME

protected static final java.lang.String VALIDATE_DEFINITION_NAME
スレッドプール用Bean定義ファイル名。

関連項目:
定数フィールド値

USECACHE_NAME

protected static final java.lang.String USECACHE_NAME
キャッシュ有無用Bean名。

関連項目:
定数フィールド値

JOBCONTEXT_NAME

private static final java.lang.String JOBCONTEXT_NAME
ジョブコンテキストBean名。

関連項目:
定数フィールド値

JOBMANAGER_NAME

private static final java.lang.String JOBMANAGER_NAME
ジョブマネージャBean名。

関連項目:
定数フィールド値

JOBSTATUS_NAME

protected static final java.lang.String JOBSTATUS_NAME
ジョブ状況用Bean名。

関連項目:
定数フィールド値

MONITORABLE_JOBSTATUS_NAME

protected static final java.lang.String MONITORABLE_JOBSTATUS_NAME
モニター用ジョブ状況用Bean名。

関連項目:
定数フィールド値

ENDFILECHECKER_NAME

private static final java.lang.String ENDFILECHECKER_NAME
ジョブ終了監視用Bean名。

関連項目:
定数フィールド値

USE_MONITORABLE

protected static final java.lang.String USE_MONITORABLE
ジョブ監視用Bean名。

関連項目:
定数フィールド値

JOBSTATUS_SUMMARIZER

protected static final java.lang.String JOBSTATUS_SUMMARIZER
処理状態のサマライザ。

関連項目:
定数フィールド値

EXITCODE_MAP

private static final java.lang.String EXITCODE_MAP
デフォルト終了コード。

関連項目:
定数フィールド値

THROWABLEHANDLER_NAME

private static final java.lang.String THROWABLEHANDLER_NAME
Throwableハンドラ用Bean名。

関連項目:
定数フィールド値

frameworkFactory

private ConfigurableApplicationContext frameworkFactory
フレームワークBeanFactory。


jobFactoryMap

private java.util.Map<java.lang.String,ConfigurableApplicationContext> jobFactoryMap
ジョブBeanFactoryのキャッシュ用Map。


async

private JobContext.START_TYPE async
非同期起動有無フラグ。


preJobProcessor

private SupportProcessor preJobProcessor
ジョブ前処理用インスタンス。


postJobProcessor

private SupportProcessor postJobProcessor
ジョブ後処理用インスタンス。


jobExitCodeMap

private java.util.Map<java.lang.String,java.lang.String> jobExitCodeMap
デフォルトのジョブ終了コードのマップ。


jobParametersSplitStr

private java.lang.String jobParametersSplitStr
ジョブパラメータの区切り文字。


throwableHandler

private ThrowableHandler throwableHandler
Throwableハンドラ。

コンストラクタの詳細

JobExecutor

protected JobExecutor()
コンストラクタ。

FrameworkFactory 初期化処理を行い、 ジョブ終了コードのマップを初期化する。


JobExecutor

protected JobExecutor(java.lang.String[] beanFileName)
コンストラクタ。(非同期ジョブ起動用)

FrameworkFactory 初期化処理を行い、 ジョブ終了コードのマップを初期化する。

パラメータ:
beanFileName - Bean定義ファイル
メソッドの詳細

getJobBeanFactory

protected ConfigurableApplicationContext getJobBeanFactory(JobInfo jobInfo)
ジョブ毎のBeanFactoryを取得するメソッド。
非同期実行時は、ジョブBean定義ファイルにてuseCacheTRUEに設定した場合、 生成されたBeanFactoryはキャッシュし再利用される。

パラメータ:
jobInfo - ジョブ依頼情報
戻り値:
ジョブ毎のBeanFactory

isAsync

protected boolean isAsync()
非同期ジョブ起動であるかを評価する。

戻り値:
非同期ジョブの起動であればtrueを返す。

getJobManager

protected Workable<WorkUnit> getJobManager(ConfigurableApplicationContext jobFactory)
ジョブマネージャを取得する。

パラメータ:
jobFactory - ジョブ毎のBeanFactory
戻り値:
ジョブマネージャ

getJobContext

protected JobContext getJobContext(ConfigurableApplicationContext jobFactory,
                                   JobInfo jobInfo)
ジョブコンテキストの取得。
ジョブコンテキストを取得し、初期値を設定する。

パラメータ:
jobFactory - ジョブ毎のBeanFactory
jobInfo - ジョブ依頼情報
戻り値:
ジョブコンテキスト

getJobStatus

protected JobStatus getJobStatus(ConfigurableApplicationContext jobFactory,
                                 JobInfo jobInfo)
ジョブ処理状態格納用JobStatusを取得する。
JobStatusを取得し、初期値を設定する。 ジョブの監視設定がされている場合は、監視用のJobStatesを 取得する。

パラメータ:
jobFactory - ジョブ毎のBeanFactory
jobInfo - ジョブ依頼情報
戻り値:
ジョブ処理状態格納用JobStatus

getWorkUnit

protected WorkUnit getWorkUnit(JobContext jobContext)
WorkUnitを生成し、ジョブコンテキストを設定する。

パラメータ:
jobContext - ジョブコンテキスト
戻り値:
WorkUnit

initEndFileChecker

protected void initEndFileChecker(JobStatus jobStatus,
                                  JobContext jobContext)
終了ファイル監視スレッドの初期化を行う。
ジョブの処理状態を登録する。

パラメータ:
jobStatus - ジョブの処理状態
jobContext - ジョブコンテキスト

removeJobStatusFromEndFileChecker

protected void removeJobStatusFromEndFileChecker(JobStatus jobStatus,
                                                 JobContext jobContext)
終了ファイル監視スレッドに登録されたジョブの処理状態を削除する。

パラメータ:
jobStatus - ジョブの処理状態
jobContext - ジョブコンテキスト

execute

protected JobStatus execute(JobInfo jobInfo)
ジョブを実行する。
ジョブ依頼情報を用いて指定されたジョブを起動する。

パラメータ:
jobInfo - ジョブ依頼情報
戻り値:
ジョブ実行結果

printStartLog

protected void printStartLog(JobInfo jobInfo)
ジョブの開始ログを出力する。

パラメータ:
jobInfo - ジョブ依頼情報

printEndLog

protected void printEndLog(JobStatus jobStatus)
ジョブの開始ログを出力する。

パラメータ:
jobStatus - ジョブの処理状態

checkJobInfo

private void checkJobInfo(JobInfo jobInfo)
英数字文字列であるかをチェックする。 英数字文字列以外であった場合は、JobExceptionthrowする。

パラメータ:
jobInfo - チェック対象の文字例
例外:
ジョブ例外

setDefaultJobExitCode

protected void setDefaultJobExitCode(JobStatus jobStatus)
ジョブ終了コードを設定する。 終了コードの設定がNullの場合、Bean定義の状態別終了コードを デフォルト終了コードとして設定する。

パラメータ:
jobStatus - 処理対象の処理状況

initDefaultJobExitCodeMap

private void initDefaultJobExitCodeMap()
ジョブ終了コードのマップを初期化する。


work

public void work(AbstractJobControlInfo jobInfo,
                 JobStatus jobStatus)
非同期型ジョブ起動時のワーカメソッド。

定義:
インタフェース Workable<AbstractJobControlInfo> 内の work
パラメータ:
jobInfo - ジョブ依頼情報
jobStatus - ジョブステータス

destroy

public void destroy()
作成したBeanFactoryの破棄処理を行う。
キャッシュしたJobBeanFactory及びFrameworkBeanFactory を破棄する。


setAsync

public void setAsync(boolean async)
非同期起動有無フラグを設定する。
Springからの値をインジェクションする。

パラメータ:
async - 非同期起動有無フラグ

setPreJobProcessor

public void setPreJobProcessor(SupportProcessor preJobProcessor)
ジョブ起動後処理を設定する。

パラメータ:
preJobProcessor - ジョブ起動前処理

setPostJobProcessor

public void setPostJobProcessor(SupportProcessor postJobProcessor)
ジョブ起動前処理を設定する。

パラメータ:
postJobProcessor - ジョブ起動前処理

setJobParametersSplitStr

public void setJobParametersSplitStr(java.lang.String jobParametersSplitStr)
ジョブパラメータの区切り文字を設定する。

パラメータ:
jobParametersSplitStr - ジョブパラメータの区切り文字

getFrameworkFactory

protected ConfigurableApplicationContext getFrameworkFactory()
フレームワークBeanFactoryの取得

戻り値:
frameworkFactory フレームワークBeanFactory

setThrowableHandler

public void setThrowableHandler(ThrowableHandler throwableHandler)
Throwableハンドラを設定する。

パラメータ:
throwableHandler - Throwableハンドラ