簡體   English   中英

Java Spring 引導加 Spring 批量創建 ZACA268A40E82159FB16B5B74C674 僅運行特定作業

[英]Java Spring Boot plus Spring Batch create Jar and run specific job only

我正在嘗試使用 spring 批處理應用程序啟動 spring 啟動,該應用程序將有多個作業。

當我嘗試構建 jar(假設只有一項工作)時,它仍然會啟動應用程序並實際運行可用的工作。

mvn clean package

我只是想在這里構建一個 Jar,不想實際運行任何作業。

稍后,一旦 Jar 可用,我可以通過一些 arguments 來運行特定的 Job。 目前我的代碼中只有一項工作,以后會有更多工作。 但我連一份工作都做不了。

這是我迄今為止根據所有在線建議所嘗試的。

批量配置.java

@Configuration
@EnableBatchProcessing
public class BatchConfiguration {

    private static final Logger logger = LoggerFactory.getLogger(BatchConfiguration.class);

    @Autowired
    public JobBuilderFactory jobBuilderFactory;

    @Autowired
    public StepBuilderFactory stepBuilderFactory;

    @Autowired
    public FileDTO fileDTO;


    @Bean
    public Job fetchJob(Step step) {
        return jobBuilderFactory
                .get("My Job")
                .incrementer(new RunIdIncrementer())
                .flow(step)
                .end()
                .build();
    }

    @Bean
    public Step getData() {
        return stepBuilderFactory
                .get("get data")
                .<FileDTO, FileDTO>chunk(1)
                .reader(FileReader())
                .processor(new FileProcessor())
                .writer(new FileWriter())
                .build();
    }
}

應用程序屬性

spring.datasource.url=jdbc:postgresql://dbhost:1000/db
spring.datasource.username=username
spring.datasource.password=password
spring.datasource.platform=postgresql
spring.batch.job.names=

我試圖在這里為 spring.batch.job.names 屬性留空。

運行mvn clean package ,它幫助我編譯和構建 jar 而不運行作業。

現在,我正在嘗試運行給出參數,

java -jar target\mytest-0.0.1-SNAPSHOT.jar --spring.batch.job.names=fetchJob

它根本沒有開始工作。

請注意,如果我從 application.properties 中刪除屬性 spring.batch.job.names 並按照步驟操作, mvn clean package => 將運行該作業並創建 ZACA268A40E82159FB15EZ74B5。 這是我不想要的。 稍后我將有更多工作,我不想在創建 Jar 時運行這些工作。

我在這里想念什么?

我只是想在這里構建一個 Jar,不想實際運行任何作業。

您需要為此設置屬性spring.batch.job.enabled=false而不是添加空屬性spring.batch.job.names=

它根本沒有開始工作。

如果您刪除空屬性spring.batch.job.names=並使用以下命令運行您的作業:

java -jar target\mytest-0.0.1-SNAPSHOT.jar --spring.batch.job.names=fetchJob

那么它應該可以工作。

暫無
暫無

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

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