自动触发弹簧批处理作业

时间:2020-02-12 14:02:53

标签: spring spring-batch

是否可以选择自动运行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方法,以便它触发。没有此主要方法或调度程序,我们可以自动调用此批处理吗?还是有更好的选择?

  1. Spring批处理应自动触发,而无需从任何入口点触发,就像它的守护进程线程一样。
  2. 假设一次批次正在使用spring批次处理数据。运行完成后如何自动触发Spring Batch作业 工作?

1 个答案:

答案 0 :(得分:0)

存在许多触发批处理的选项:

  1. 要从另一个调度程序调用批处理,请在此处发出运行参数并触发作业。
  2. 如果必须自动触发,例如可能要间隔一定的时间,请使用fixedDelay调度
  3. 要手动触发,您可以使用MBean方法,该方法可以从JConsole触发。
  4. 或者有一个端点来呼叫runBatch