Spring batch 如何在不影响Spring云数据流上部署的其他作业的情况下修改作业
如何在SCDF上修改和部署1个作业(例如:通过更改作业A重建jar文件),但该jar文件中的其他作业仍在运行 我正在Spring云数据流上设置Spring批处理作业。在我的Spring批处理项目中有多个作业(A、B、C……)。我已经从我的项目中构建了一个jar文件,并将其部署在SCDF上。 在启动任务时,我使用--spring.batch.job.names=A/B/C/…分别运行每个作业。 我尝试过创建一个新的jar并用旧的jar替换它,但是它不起作用,因为旧的jar仍然在运行 我有多个与多个作业相关的类,并从CommonBatchConfiguration扩展:Spring batch 如何在不影响Spring云数据流上部署的其他作业的情况下修改作业,spring-batch,spring-cloud-dataflow,Spring Batch,Spring Cloud Dataflow,如何在SCDF上修改和部署1个作业(例如:通过更改作业A重建jar文件),但该jar文件中的其他作业仍在运行 我正在Spring云数据流上设置Spring批处理作业。在我的Spring批处理项目中有多个作业(A、B、C……)。我已经从我的项目中构建了一个jar文件,并将其部署在SCDF上。 在启动任务时,我使用--spring.batch.job.names=A/B/C/…分别运行每个作业。 我尝试过创建一个新的jar并用旧的jar替换它,但是它不起作用,因为旧的jar仍然在运行 我有多个与多个
@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中得到了解决,您可以观看epic我修改了一个作业并获得了一个新的jar文件。之后,我将其复制到app_注册url指向的deploy文件夹中。它可以工作。但是,我遇到了一个新问题,即当我使用SCDF dashbroad“停止作业”时,任务不会停止,并且该作业的状态为“停止”。特别是,该“停止”作业的日志仍在编写中。你对此有什么想法吗?可能是一个bug或者与你的作业配置有关的东西。您能否在SpringCloudDataFlowGitHub上创建一个问题,并提供有用的信息来重现这个问题?我已经找到了问题的原因。日志仍被写入,因为作业一直执行到完成当前步骤(我的作业有2个步骤,第二个步骤未执行)。但是,当我停止作业时,是否有任何方法可以立即关闭它(步骤1)?我将按照您的建议尝试在Github上创建问题。