我定义了一个非常简单的spring批处理作业,如下所示。我想使用接收到的参数更改它的注册名称(该参数作为 jobName 添加到作业的spring批处理参数列表中)
@Bean
@JobScope //this doesn't work throws exception 'No context holder available for job scope'
Job genericJob (JobNotifierListener listener,
Step genericStep1, Step genericStep2,
@Value("#{jobParameters['jobName']}") String jobName
) {
return jobBuilderFactory.get(jobName + "GenericJob")
.incrementer(new RunIdIncrementer())
.listener(listener)
.start(genericStep1)
.next(genericStep2)
.build();
}
我如何配置作业,以便使用输入批处理参数 jobName 动态更改作业的名称?(因为添加@JobScope来访问Spring批处理上下文不起作用,抛出错误)
1条答案
按热度按时间wztqucjr1#
工作名称不应该是工作参数。工作参数是针对“商业”执行时期参数而设计,而不是技术组态参数。应用程序属性或系统属性更适合您的情况: