在步骤中收听作业 运行 的 afterWrite
Listen to afterWrite of a job running inside a step
这是我的步骤配置:
@Bean
Step processEnrollment(@Lazy Job enrollmentProcessor) {
return this.steps.get("processEnrollment")
.job(enrollmentProcessor)
.launcher(this.jobLauncher)
.parametersExtractor(DEFAULT_PARAM_EXTRACTOR)
.listener(/*StepExecutionListener*/)
.build();
}
我的问题是 .listener()
只接受步骤执行侦听器。例如,有什么方法可以注册作家听众吗?我不想将 "internal" 作业与此侦听器耦合。
如果将一个完整的作业包装到一个步骤中,则无法注册块、读或写侦听器。
该步骤只是简单地包装了一个作业,并不知道作业内部发生了什么。它只知道什么时候开始,什么时候结束;侦听器不会传播到子元素。
这也是为什么您不能在作业上注册块、读取或写入侦听器的原因。
如果您想注册一个写入侦听器,您必须在注册处理器作业的适当步骤中执行此操作。
这是我的步骤配置:
@Bean
Step processEnrollment(@Lazy Job enrollmentProcessor) {
return this.steps.get("processEnrollment")
.job(enrollmentProcessor)
.launcher(this.jobLauncher)
.parametersExtractor(DEFAULT_PARAM_EXTRACTOR)
.listener(/*StepExecutionListener*/)
.build();
}
我的问题是 .listener()
只接受步骤执行侦听器。例如,有什么方法可以注册作家听众吗?我不想将 "internal" 作业与此侦听器耦合。
如果将一个完整的作业包装到一个步骤中,则无法注册块、读或写侦听器。
该步骤只是简单地包装了一个作业,并不知道作业内部发生了什么。它只知道什么时候开始,什么时候结束;侦听器不会传播到子元素。 这也是为什么您不能在作业上注册块、读取或写入侦听器的原因。
如果您想注册一个写入侦听器,您必须在注册处理器作业的适当步骤中执行此操作。