簡體   English   中英

無法使用 spring.batch.job.names 選項運行 select spring 批處理作業

[英]Unable to select spring batch job to run with spring.batch.job.names options

我有一個 spring 批處理代碼庫,它在BatchConfig中定義了多個Job bean。 我在正確的位置使用spring.batch.job.enabled=false禁用了自動運行。 基本大綱如下:

我的批處理配置如下所示:

@Configuration
public class BatchConfiguration {

  @Autowired
  public JobBuilderFactory jobBuilderFactory;

  @Autowired
  public StepBuilderFactory stepBuilderFactory;

  @Bean
  public Job myTestJob1() {...}

  @Bean
  public Job myTestJob2() {...}

}

class主要是:

@SpringBootApplication
@EnableBatchProcessing
public class BatchProcessingApplication {

  public static void main(String[] args) throws Exception {
    System.exit(SpringApplication.exit(SpringApplication.run(BatchProcessingApplication.class, args)));
  }
}

當我嘗試像這樣運行 jar 時,它將成功啟動並退出而不運行作業:

java -jar batch.jar -spring.batch.job.names=myTestJob1

據我所知,這應該有效,但事實並非如此。 我已經嘗試將@EnableBatchProcessing 移動到 BatchCongfig class 並且它也不起作用。

請用:
java -jar batch.jar --spring.batch.job.names=myTestJob1

您正在使用此命令:

java -jar batch.jar -spring.batch.job.names=myTestJob1

根據從命令行運行的Spring 文檔:

Spring 引導將以 -- 開頭的任何命令行參數轉換為要添加到環境的屬性,請參閱訪問命令行屬性。 這不應用於將 arguments 傳遞給批處理作業。

為了讓 Spring “看到”你要求它做什么,你需要改變:

java -jar batch.jar -spring.batch.job.names=myTestJob1

對此:

java -jar batch.jar --spring.batch.job.names=myTestJob1

唯一的區別是使用“ -- ”作為“spring.batch.job.names”的前綴(而不是單破折號:“ - ”)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM