public class JsrJobOperator
extends java.lang.Object
implements javax.batch.operations.JobOperator, org.springframework.context.ApplicationContextAware, org.springframework.beans.factory.InitializingBean
ApplicationContext
を提供します: <beans> <batch:job-repository id="jobRepository"... /> <Bean id="jobLauncher" class="org.springframework.batch.core.launch.support.SimpleJobLauncher">... </bean> <Bean id="batchJobOperator" class="org.springframework.batch.core.launch.support.SimpleJobOperator">... </bean> <Bean id="jobExplorer" class="org.springframework.batch.core.explore.support.JobExplorerFactoryBean">... </bean> <Bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">... </bean> <Bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">... </bean> <Bean id="jobParametersConverter" class="org.springframework.batch.core.jsr.JsrJobParametersConverter"/> <Bean id="jobRegistry" class="org.springframework.batch.core.configuration.support.MapJobRegistry"/> <Bean id="placeholderProperties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">... </bean> </beans> 上記のコンポーネントのカスタム構成は、システムプロパティ JSR-352-BASE-CONTEXT を提供することで指定できます。このシステムプロパティによって提供される場所は、baseContext.xml で定義されているすべての Bean をオーバーライドします。JobOperator.start(String, Properties)
を呼び出すと、ジョブ定義と batch.xml (提供されている場合) を使用して、上記のコンテキストに子コンテキストが提供されます。デフォルトでは、start/restart を呼び出すと、非同期 TaskExecutor
を介してバッチジョブが非同期実行されます。同期動作またはスレッド動作のカスタマイズの場合は、別の TaskExecutor
実装を提供する必要があります。注 : このクラスは、JSR-352 で構成されたジョブにのみ使用することを目的としています。この JobOperator
を使用して Spring Batch ジョブを開始 / 停止 / 再起動すると、ジョブインスタンスの識別方法が異なるため、予期しない動作が発生する可能性があります。修飾子と型 | クラスと説明 |
---|---|
protected static class | JsrJobOperator.BaseContextHolder JSR-352 で使用される基本コンテキストを遅延ブートストラップするために使用されるシングルトンホルダー。 |
コンストラクターと説明 |
---|
JsrJobOperator() BatchRuntime.getJobOperator() が使用する public コンストラクター。 |
JsrJobOperator(JobExplorer jobExplorer, JobRepository jobRepository, JobParametersConverter jobParametersConverter, org.springframework.transaction.PlatformTransactionManager transactionManager) 引数なしのコンストラクターは BatchRuntime.getJobOperator() によって使用されるため、ApplicationContext をブートストラップします。 |
修飾子と型 | メソッドと説明 |
---|---|
void | abandon(long jobExecutionId) |
void | afterPropertiesSet() |
javax.batch.runtime.JobExecution | getJobExecution(long executionId) |
java.util.List<javax.batch.runtime.JobExecution> | getJobExecutions(javax.batch.runtime.JobInstance jobInstance) |
javax.batch.runtime.JobInstance | getJobInstance(long executionId) |
int | getJobInstanceCount(java.lang.String jobName) |
java.util.List<javax.batch.runtime.JobInstance> | getJobInstances(java.lang.String jobName, int start, int count) |
java.util.Set<java.lang.String> | getJobNames() |
protected java.util.Properties | getJobRestartProperties(java.util.Properties params, JobExecution previousJobExecution) |
java.util.Properties | getParameters(long executionId) |
java.util.List<java.lang.Long> | getRunningExecutions(java.lang.String name) |
java.util.List<javax.batch.runtime.StepExecution> | getStepExecutions(long executionId) |
protected org.springframework.core.task.TaskExecutor | getTaskExecutor() |
long | restart(long executionId, java.util.Properties params) /META-INF/batch.xml (存在する場合)および /META-INF/batch-jobs/<jobName>.xml 構成に基づいて、リクエストされているジョブの子 ApplicationContext を作成し、ジョブを再始動します。 |
void | setApplicationContext(org.springframework.context.ApplicationContext applicationContext) |
void | setJobExplorer(JobExplorer jobExplorer) |
void | setJobParametersConverter(JobParametersConverter converter) JSR-352 で使用される Properties オブジェクトを Spring Batch で使用される JobParameters オブジェクトに変換するために使用されます。 |
void | setJobRepository(JobRepository jobRepository) |
void | setTaskExecutor(org.springframework.core.task.TaskExecutor taskExecutor) |
void | setTransactionManager(org.springframework.transaction.PlatformTransactionManager transactionManager) |
long | start(java.lang.String jobName, java.util.Properties params) /META-INF/batch.xml (存在する場合)および /META-INF/batch-jobs/<jobName>.xml 構成に基づいて、リクエストされているジョブの子 ApplicationContext を作成し、ジョブを起動します。 |
void | stop(long executionId) 現在実行中のジョブの実行を停止します。 |
public JsrJobOperator()
BatchRuntime.getJobOperator()
が使用する public コンストラクター。これにより、シングルトン ApplicationContext がまだ作成されていない場合はブートストラップされ(存在する場合は既存のものを使用して)、自身を取り込みます。public JsrJobOperator(JobExplorer jobExplorer, JobRepository jobRepository, JobParametersConverter jobParametersConverter, org.springframework.transaction.PlatformTransactionManager transactionManager)
BatchRuntime.getJobOperator()
によって使用されるため、ApplicationContext
をブートストラップします。このコンストラクターはそうではないため、依存性注入に適しています。単体テストにも役立ちます。jobExplorer
- Spring Batch の JobExplorer
のインスタンス。jobRepository
- Spring Batch の JobOperator
のインスタンス。jobParametersConverter
- Spring Batch の JobParametersConverter
のインスタンス。transactionManager
- PlatformTransactionManager
public void setJobExplorer(JobExplorer jobExplorer)
public void setJobRepository(JobRepository jobRepository)
public void setTransactionManager(org.springframework.transaction.PlatformTransactionManager transactionManager)
public void setTaskExecutor(org.springframework.core.task.TaskExecutor taskExecutor)
protected org.springframework.core.task.TaskExecutor getTaskExecutor()
public void afterPropertiesSet() throws java.lang.Exception
org.springframework.beans.factory.InitializingBean
の afterPropertiesSet
java.lang.Exception
public void setJobParametersConverter(JobParametersConverter converter)
Properties
オブジェクトを Spring Batch で使用される JobParameters
オブジェクトに変換するために使用されます。使用されるデフォルトの実装では、すべてのパラメーターが(JSR ごとに)非識別になるように構成されます。converter
- Properties
を JobParameters
に変換するために使用される Converter
実装 public void abandon(long jobExecutionId) throws javax.batch.operations.NoSuchJobExecutionException, javax.batch.operations.JobExecutionIsRunningException, javax.batch.operations.JobSecurityException
javax.batch.operations.JobOperator
の abandon
javax.batch.operations.NoSuchJobExecutionException
javax.batch.operations.JobExecutionIsRunningException
javax.batch.operations.JobSecurityException
public javax.batch.runtime.JobExecution getJobExecution(long executionId) throws javax.batch.operations.NoSuchJobExecutionException, javax.batch.operations.JobSecurityException
javax.batch.operations.JobOperator
の getJobExecution
javax.batch.operations.NoSuchJobExecutionException
javax.batch.operations.JobSecurityException
public java.util.List<javax.batch.runtime.JobExecution> getJobExecutions(javax.batch.runtime.JobInstance jobInstance) throws javax.batch.operations.NoSuchJobInstanceException, javax.batch.operations.JobSecurityException
javax.batch.operations.JobOperator
の getJobExecutions
javax.batch.operations.NoSuchJobInstanceException
javax.batch.operations.JobSecurityException
public javax.batch.runtime.JobInstance getJobInstance(long executionId) throws javax.batch.operations.NoSuchJobExecutionException, javax.batch.operations.JobSecurityException
javax.batch.operations.JobOperator
の getJobInstance
javax.batch.operations.NoSuchJobExecutionException
javax.batch.operations.JobSecurityException
public int getJobInstanceCount(java.lang.String jobName) throws javax.batch.operations.NoSuchJobException, javax.batch.operations.JobSecurityException
javax.batch.operations.JobOperator
の getJobInstanceCount
javax.batch.operations.NoSuchJobException
javax.batch.operations.JobSecurityException
public java.util.List<javax.batch.runtime.JobInstance> getJobInstances(java.lang.String jobName, int start, int count) throws javax.batch.operations.NoSuchJobException, javax.batch.operations.JobSecurityException
javax.batch.operations.JobOperator
の getJobInstances
javax.batch.operations.NoSuchJobException
javax.batch.operations.JobSecurityException
public java.util.Set<java.lang.String> getJobNames() throws javax.batch.operations.JobSecurityException
javax.batch.operations.JobOperator
の getJobNames
javax.batch.operations.JobSecurityException
public java.util.Properties getParameters(long executionId) throws javax.batch.operations.NoSuchJobExecutionException, javax.batch.operations.JobSecurityException
javax.batch.operations.JobOperator
の getParameters
javax.batch.operations.NoSuchJobExecutionException
javax.batch.operations.JobSecurityException
public java.util.List<java.lang.Long> getRunningExecutions(java.lang.String name) throws javax.batch.operations.NoSuchJobException, javax.batch.operations.JobSecurityException
javax.batch.operations.JobOperator
の getRunningExecutions
javax.batch.operations.NoSuchJobException
javax.batch.operations.JobSecurityException
public java.util.List<javax.batch.runtime.StepExecution> getStepExecutions(long executionId) throws javax.batch.operations.NoSuchJobExecutionException, javax.batch.operations.JobSecurityException
javax.batch.operations.JobOperator
の getStepExecutions
javax.batch.operations.NoSuchJobExecutionException
javax.batch.operations.JobSecurityException
public long restart(long executionId, java.util.Properties params) throws javax.batch.operations.JobExecutionAlreadyCompleteException, javax.batch.operations.NoSuchJobExecutionException, javax.batch.operations.JobExecutionNotMostRecentException, javax.batch.operations.JobRestartException, javax.batch.operations.JobSecurityException
ApplicationContext
を作成し、ジョブを再始動します。javax.batch.operations.JobOperator
の restart
executionId
- 再起動するジョブ実行のデータベース ID。params
- このジョブの実行中に使用されるジョブパラメーター。javax.batch.operations.JobExecutionAlreadyCompleteException
- リクエストされたジョブ実行のステータスが COMPLETE の場合にスローされます javax.batch.operations.NoSuchJobExecutionException
- リクエストされたジョブの実行がリポジトリに存在しない場合に投げる javax.batch.operations.JobExecutionNotMostRecentException
- リクエストされたジョブの実行が、関連するジョブインスタンスの最新の試行ではない場合にスローされます。javax.batch.operations.JobRestartException
- ジョブの再起動プロセス中に一般的なエラーが発生した場合にスローされます javax.batch.operations.JobSecurityException
protected java.util.Properties getJobRestartProperties(java.util.Properties params, JobExecution previousJobExecution)
public long start(java.lang.String jobName, java.util.Properties params) throws javax.batch.operations.JobStartException, javax.batch.operations.JobSecurityException
ApplicationContext
を作成し、ジョブを起動します。JSR-352 によると、このメソッドを呼び出すと、常に新しい JobInstance
(および関連する JobExecution
)が作成されます。javax.batch.operations.JobOperator
の start
jobName
- /META-INF/batch-jobs ディレクトリ内にある .xml なしのジョブ XML ファイルの名前。params
- このジョブの実行中に使用されるジョブパラメーター。javax.batch.operations.JobStartException
javax.batch.operations.JobSecurityException
public void stop(long executionId) throws javax.batch.operations.NoSuchJobExecutionException, javax.batch.operations.JobExecutionNotRunningException, javax.batch.operations.JobSecurityException
javax.batch.operations.JobOperator
の stop
executionId
- 停止する JobExecution
のデータベース ID。javax.batch.operations.NoSuchJobExecutionException
- JobExecution
インスタンスが存在しない場合にスローされます。javax.batch.operations.JobExecutionNotRunningException
- JobExecution
が実行されていない場合にスローされます。javax.batch.operations.JobSecurityException
public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext) throws org.springframework.beans.BeansException
org.springframework.context.ApplicationContextAware
の setApplicationContext
org.springframework.beans.BeansException