[英]Run Spring Batch Job programmatically?
我有一個Spring Batch應用程序,我從CommandLineJobRunner
開始。 但現在我必須將此應用程序嵌入到我們的企業環境中。 我們有一個自己的Launcher應用程序,我必須使用它。 對於這個啟動器應用程序,我需要一個帶有main方法的啟動類,它將在啟動時調用,並且我必須啟動Spring Batch。
是手動分配JobLauncher
並使用此啟動器運行Job的唯一方法,還是Spring Batch中有一個類支持(或者有人知道樣本)?
如果您不想使用CommandLineRunner(由於某種原因或者您需要一些自定義邏輯),請使用Spring Boot應用程序,您可以始終執行以下操作:
public static void main(String[] args) {
SpringApplication app = new SpringApplication(YourApplication.class);
app.setWebEnvironment(false);
ConfigurableApplicationContext ctx = app.run(args);
JobLauncher jobLauncher = ctx.getBean(JobLauncher.class);
Job job = ctx.getBean("your-job-here", Job.class);
JobParameters jobParameters = new JobParametersBuilder().toJobParameters();
JobExecution jobExecution = jobLauncher.run(job, jobParameters);
BatchStatus batchStatus = jobExecution.getStatus();
}
JobLauncher可用於以編程方式調用Job。 如果您正在尋找一種從Web應用程序觸發作業的方法,可以在您的Servlet / Controller中自動裝配JobLauncher:
http://docs.spring.io/spring-batch/reference/htmlsingle/#runningJobsFromWebContainer
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.