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



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

我正在Spring Cloud数据流上设置一个Spring批处理作业。在我的SpringBatch项目中有多个作业(A、B、C…(。我已经从我的项目中构建了一个jar文件,并将其部署在SCDF上。我在启动任务时使用了--spring.batch.job.names=A/B/C/…来分别运行每个作业。我试着创建一个新的罐子并用旧的罐子替换它,但它不起作用,因为旧的罐子还在运行。

我有多个与多个作业相关的类,并从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个作业,并在不影响其他的情况下部署它

在您的案例中,似乎需要组合任务(配置为批处理作业(,并且您可以将组合任务部署为单个任务(批处理应用程序(。有关合成任务的更多详细信息,请参阅此处。

在不影响其他任务的情况下修改其中一个作业版本的功能在SCDF的2.3.x中得到了解决,您可以在这里观看史诗般的

最新更新