Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring批处理-如何使用JavaConfig全局设置RunDidCrementer_Spring_Spring Batch_Jobs_Spring Java Config - Fatal编程技术网

Spring批处理-如何使用JavaConfig全局设置RunDidCrementer

Spring批处理-如何使用JavaConfig全局设置RunDidCrementer,spring,spring-batch,jobs,spring-java-config,Spring,Spring Batch,Jobs,Spring Java Config,我正在使用SpringBatch和JavaConfig(无XML)开发一个项目。 我正在使用自动连线创建作业 是否可以全局设置工厂的递增器 返回jobBuilderFactory.get(“jobName”).incrementer(newrunidIncrementer()).start(stepOne()).next(lastStep()).build() 很抱歉,如果这是一个转储问题,但我是Spring Batch新手,没有找到有效的解决方案。对于XML配置,您会使用,但您说您不使用XML

我正在使用SpringBatch和JavaConfig(无XML)开发一个项目。 我正在使用自动连线创建作业

是否可以全局设置工厂的递增器

返回jobBuilderFactory.get(“jobName”).incrementer(newrunidIncrementer()).start(stepOne()).next(lastStep()).build()


很抱歉,如果这是一个转储问题,但我是Spring Batch新手,没有找到有效的解决方案。

对于XML配置,您会使用,但您说您不使用XML

由于Java配置没有与XML bean定义继承等价的继承(请参阅此处的详细信息:),因此您可以在配置中全局创建
RunIdIncrementer
,并在作业定义中使用它:

public JobParametersIncrementer jobParametersIncrementer() {
    return new RunIdIncrementer();
}

public JobBuilder getJobBuilder(String jobName) {
    return jobBuilderFactory.get(jobName)
            .incrementer(jobParametersIncrementer());
}

@Bean
public Job job1() {
    return getJobBuilder("job1")
            .start(step())
            .build();
}

@Bean
public Job job2() {
    return getJobBuilder("job2")
            .start(step())
            .build();
}

但是,正如在评论中所说,您最终会得到每个作业都不连续的
run.id
值。

您所说的“为工厂全局设置递增器”是什么意思?递增器与特定作业相关,它在运行作业的下一个实例时递增作业参数。因此,每个作业都有自己的递增器。您说您没有找到有效的解决方案,您希望实现什么?当我查看spring批处理示例时,作业定义如下:
return jobs.get(“myJob”).start(step1).next(step2).build()并且似乎没有增量设置(如果我错了,很抱歉)。我们将只在整个批处理项目中使用基本的“RunIdIncrementer”,这就是为什么我想为所有作业全局设置它。我们通过Cron+Rest(使用虚拟参数)触发作业,谢谢!似乎每个作业的一个新RundIncrementer实例都是一个“更干净”的解决方案,尤其是对于连续的值。
RunIdIncrementer
与特定作业相关。