如何在不影响Spring Cloud Data Flow上部署的其他作业的情况下修改作业

问题描述 投票:0回答:1

我如何在SCDF上修改和部署1个作业(例如,通过更改作业A重建jar文件,但该jar文件中的其他作业仍在运行。

我正在Spring Cloud Data Flow上设置Spring Batch作业。我的Spring Batch项目中有多个作业(A,B,C等)。我已经从项目中构建了一个jar文件,并将其部署在SCDF上。我在启动任务以分别运行每个作业时使用了--spring.batch.job.names = A / B / C /...。我尝试创建一个新的jar并将其替换为旧的jar,但是由于旧的jar仍在运行,因此无法正常工作。

我有与多个工作相关的多个类,并且从CommonBatchConfiguration扩展而来:

@Configuration
public class jobAclass extends CommonBatchConfiguration{
    @Bean
        public Job jobA() {
                return jobBuilderFactory
            .get("jobA ")
            .incrementer(new RunIdIncrementer())
            .start(stepA1())
                .build();
        }
    @Bean
    public Step stepA1() {  
        return stepBuilderFactory
                .get("stepA1")
                .tasklet(taskletA1())
                .build();
    }

    public Tasklet taskletA1() {
        return (contribution, chunkContext) -> {
            return RepeatStatus.FINISHED;
        };
    }
}

@Configuration
public class jobBclass extends CommonBatchConfiguration{
    @Bean
        public Job jobB() {
                return jobBuilderFactory
            .get("jobB")
            .incrementer(new RunIdIncrementer())
            .start(stepB1())
                .build();
        }
    @Bean
    public Step stepB1() {  
        return stepBuilderFactory
                .get("stepB1")
                .tasklet(taskletB1())
                .build();
    }   
    public Tasklet taskletB1() {
        return (contribution, chunkContext) -> {
            return RepeatStatus.FINISHED;
        };
    }
}

@EnableBatchProcessing
@Configuration
public class CommonBatchConfiguration {
    @Autowired
    public JobBuilderFactory jobBuilderFactory;
    @Autowired
    public StepBuilderFactory stepBuilderFactory;
}

我希望在文件jar中修改1个作业,并在不影响其他作业的情况下部署它

spring-batch spring-cloud-dataflow
1个回答
0
投票

看来您需要处理组合任务(配置为批处理作业),并且可以将组合任务部署为单个任务(批处理应用程序)。有关组合任务的更多详细信息,请参见here

修改作业版本之一而不影响其他任务的功能已在SCDF 2.3.x中解决,您可以观看史诗here

© www.soinside.com 2019 - 2024. All rights reserved.