Javaバウンドバッチを使用してさまざまなジョブを作成しています。バネバッチジョブの進行状況を監視
私はジョブの現在の状態を取得する必要があります 手順は、現在 (私は同時に実行されている複数のステップを有していてもよい)で実行されている手順は(ステータスと終了コードを)失敗した など
私はオンライン見るだけの例は、XMLベースのスプリングバッチのものであり、I java configのみを使用します。
ありがとうございました。
Javaバウンドバッチを使用してさまざまなジョブを作成しています。バネバッチジョブの進行状況を監視
私はジョブの現在の状態を取得する必要があります 手順は、現在 (私は同時に実行されている複数のステップを有していてもよい)で実行されている手順は(ステータスと終了コードを)失敗した など
私はオンライン見るだけの例は、XMLベースのスプリングバッチのものであり、I java configのみを使用します。
ありがとうございました。
私は春のバッチメタデータテーブルでこれらの2つのクエリを使用して、ジョブの進行状況とステップの詳細を知ります。最初のクエリで
SELECT * FROM BATCH_JOB_EXECUTION ORDER BY START_TIME DESC;
SELECT * FROM BATCH_STEP_EXECUTION WHERE JOB_EXECUTION_ID=? ORDER BY STATUS;
、私が最初に特定のステップの詳細を見つけるために、2番目のクエリでは、そのIDを使用して、私のジョブの実行に対応するJOB_EXECUTION_ID
を見つけます。
さらに、設定の選択(JavaまたはXML)は、Springバッチのメタデータとは関係ありません。データを永続化している場合は、そのXML設定またはJava Configが問題ではありません。監視 - ベースのJava用
あなたはなどのジョブを照会するJobExplorer
& JobRepository
豆を使用することができます
例えばList<JobInstance>
からjobExplorer.getJobInstances
& jobExplorer.getJobExecutions(jobInstance)
など
JobExecutionsからStepExecutionsなどが取得できます。
JobExplorer
& JobRepository
については、JobRegistryBeanPostProcessor
beanを正しく設定する必要があります。
@Bean
public JobRegistryBeanPostProcessor jobRegistryBeanPostProcessor(
JobRegistry jobRegistry) {
JobRegistryBeanPostProcessor jobRegistryBeanPostProcessor = new JobRegistryBeanPostProcessor();
jobRegistryBeanPostProcessor.setJobRegistry(jobRegistry);
return jobRegistryBeanPostProcessor;
}
ありがとうございます。 私はこれらのテストを行うために春バッチのネイティブJavaコードのラインでもっと考えていました。 – Tomer
別のオプションは、実行中または歴史的なジョブやステップの実行を閲覧するためのJobExplorer
エントリポイントを使用することです。データは永続ストレージから再水和される可能性があるため、実行時に存在していた揮発性フィールドは含まれていない可能性があります。
List<JobExecution> jobExecutions = jobExplorer.getJobExecutions(jobInstance);
for (JobExecution jobExecution : jobExecutions) {
jobExecution.getStepExecutions();
//read step info
}
そして、あなたは工場を使用する必要がjobExplorerを作成するための:
import org.springframework.batch.core.explore.support.JobExplorerFactoryBean;
JobExplorerFactoryBean factory = new JobExplorerFactoryBean();
factory.setDataSource(dataSource);
factory.getObject();
は、あなたの仕事のためにあなたのセットアップDBをお持ちですか? 春のバッチテーブルでこのすべての情報を読むことができるので、 –
はい、私はネイティブのバネバッチコードを使用する方が良い選択肢だと考えていました。あなたの考え? – Tomer