dbを使用せずに実行時にSpring Batchで定義されたジョブのリストを取得できますか?おそらく、このメタデータをjobRepository
beanまたは類似のオブジェクトから取得することは可能でしょうか?Springバッチ:実行時に定義されたジョブのリストを取得
7
A
答えて
5
JobExplorer.getJobNames()
を使用してすべてのジョブ名のリストを取得できます。
<bean id="jobExplorer" class="org.springframework.batch.core.explore.support.JobExplorerFactoryBean">
<property name="dataSource" ref="dataSource"/>
</bean>
を、あなたがそれを必要とするとき、あなたはこのBeanを注入することができます
最初JobExplorerFactoryBean
を使用してjobExplorer
Beanを定義する必要があります。
+0
これは動作しますが、dbを使用します。データベースなしでそれを見つける方法はありますか? –
1
Beanとして構成されたジョブ名のリストを取得する代わりに、ListableJobLocatorを使用できます。
@Autowired
ListableJobLocator jobLocator;
....
jobLocator.getJobNames();
これはジョブリポジトリを必要としません。
0
私は、あなたが「定義されたジョブ」とはどういう意味ですかジョブ
private String jobName = "";
private JobLauncher jobLauncher = null;
private String selectedJob;
private String statusJob = "Exit Status : ";
private Job job;
ApplicationContext context;
private String[] lstJobs;
/**
* Execute
*/
public ExecuteJobBean() {
this.context = ApplicationContextProvider.getApplicationContext();
this.lstJobs = context.getBeanNamesForType(Job.class);
if (jobLauncher == null)
jobLauncher = (JobLauncher) context.getBean("jobLauncher");
}
/**
* Execute
*/
public void executeJob() {
setJob((Job) context.getBean(this.selectedJob));
try {
statusJob = "Exit Status : ";
JobParameters jobParameters = new JobParametersBuilder().addLong("time", System.currentTimeMillis()).toJobParameters();
JobExecution execution = jobLauncher.run(getJob(), jobParameters);
this.statusJob = execution.getStatus() + ", ";
} catch (Exception e) {
e.printStackTrace();
this.statusJob = "Error, " + e.getMessage();
}
this.statusJob += " Done!!";
}
関連する問題
- 1. クラスタ環境でのバッチ・バッチ・ジョブの同時実行の回避
- 2. Springバッチ・パーティショニング:実行時にグリッド・サイズを設定する
- 3. qsub:最後に実行されたジョブIDを取得
- 4. 長時間実行中のジョブSpring
- 5. OracleデータベースのSpringバッチ・ジョブ・リポジトリ
- 6. 実行時に定義されたwpfデータグリッドにビットマップイメージを表示
- 7. 定義された時間にタスクを実行
- 8. Windowsサービスで定義された時間後にメソッドを実行
- 9. 実行時に定義されたフィールドシンボルにアクセスするABAP
- 10. 実行時に実行時にSpringブート管理ポートを取得する
- 11. Spring java config - 実行時に作成されたbeanのリストを作成する
- 12. ロードされた実行時パッケージのリストを取得する方法は?
- 13. SpringバッチSimpleJobOperatorはメソッドgetRunningExecutionsによって取得された実行IDを停止できます
- 14. 石英ジョブの最後の実行時間を取得する
- 15. 実行されたジョブの総数に基づいてジョブの実行を一時停止する - quartz
- 16. Typesafe Configは実行時に設定されたシステムプロパティを取得しません
- 17. 次のステップリーダーでジョブのコンテキストからデータを取得するSpringバッチ
- 18. 実行時にSpringブート/ Spring JPAデータソースをプログラムで定義し削除する
- 19. sidekiqからジョブ実行時間を取得する方法は?
- 20. Spring統合後のバッチ・バッチ・ジョブのトリガーインバウンド・アダプターはメッセージを受け取ります
- 21. Sidekiqは他のジョブが実行された後にジョブを実行します
- 22. 実行時のコンテキスト設定の取得
- 23. Springバッチ - TaskExecutorを使用するFAILEDジョブ
- 24. SpringバッチまたはSpringブート非同期メソッドの実行?
- 25. Springバッチ:Springバッチでジョブ全体に巨大なMapオブジェクトを渡す方法
- 26. SQLSERVERで特定のジョブが実行されたときにアラートを取得する方法
- 27. スケジュールされたジョブを実行する
- 28. 実行時エラー1004アプリケーション定義またはオブジェクト定義のエラー -
- 29. 実行時エラー「713」 - アプリケーション定義またはオブジェクト定義のエラー
- 30. 実行時にローカルオブジェクト/変数のリストを取得する
を一覧表示し、実行するには、これらのコードを使用しますか?ローカルアプリケーションコンテキストのジョブ?ジョブリポジトリ内のジョブ?いくつかの他の定義? –
私は自分のローカルアプリケーションコンテキストで定義したすべてのジョブを意味します –
これは 'context.getBeanNamesForType(Job.class)'と同じように簡単に行うことができます。 –