spring - 自动触发spring批处理作业
问题描述
是否有任何选项可以自动运行 Spring Batch 作业而无需调度或从其他来源触发它?
我们可以通过调度表达式或main方法运行spring批处理作业(如下所述)。
public static void runBatch() {
JobLauncher jobLauncher = (JobLauncher) getApplicationContext().getBean("jobLauncher");
Job job = get Job details here;
JobParametersBuilder jobParameters = new JobParametersBuilder();
// Setting Job Parameter and run job using below
JobExecution jobExecution = jobLauncher.run(job, jobParameters.toJobParameters());
}
public static void main(String[] args) {
runBatch();
}
意味着我们需要手动调用 main 方法或通过其他一些调度程序来触发它。如果没有这个 main 方法或调度器,我们可以自动调用这个批处理吗?或者有没有更好的选择?
- Spring 批处理应该自动触发,而无需从任何入口点触发,如守护线程。
- 假设一次批处理正在使用弹簧批处理处理数据。运行作业完成后如何自动触发spring批处理作业?
解决方案
存在许多触发批处理的选项:
- 要从另一个调度程序调用批处理,请在此处发出运行参数并触发作业。
- 如果它必须自动触发,比如说可能在某个时间间隔,使用
fixedDelay
调度 - 要手动触发,您可以使用 MBean 方法,它可以从 JConsole 触发。
- 或者有一个端点来调用
runBatch
。
推荐阅读
- ios - 如果不快速执行任何操作,如何重复本地通知
- html - 在整个页面中居中加载 Css
- angular - 带有 CDK 表/材料设计的表中的单选按钮
- ios - 如何使用 UICollectionView 的 selectItem 在 collectionView 单元格上绘图?
- android - 无法弄清楚 Android 中的布局依赖项
- git - 手动创建标记,例如 git merge 与来自差异的冲突
- android - 升级到 Android Gradle 插件 3.3.0 时出现无效的 Crashlytics API 密钥错误
- java - 如何更新 jlist swing java
- java - 如何将现有文件移动到新包中?
- python - 是否可以使用 python 的 Pool.map() 获得交互式反馈