如何将自定义属性添加到Spring Batch Step,Job,Flow?

vd8tlhqk  于 2023-08-02  发布在  Spring
关注(0)|答案(1)|浏览(102)

我想将自定义(只读)元数据关联到Spring Batch作业、流程、步骤。(这与在步骤执行级别将任意数据存储到执行上下文中是不同的!如果我能做这样的事情,那就太好了:

@Bean
public Step<MyMetadata> sampleStep(JobRepository jobRepository, PlatformTransactionManager transactionManager) {
    MyMetadata myMetaData  = ...;
    return new StepBuilder<M>("mySampleStep", jobRepository)
                .withCustomMetadata(myMetaData);
                .<String, String>chunk(10, transactionManager)
                .reader(itemReader())
                .writer(itemWriter())
                .build();
}

字符串
..以便稍后,我可以取回我的自定义元数据(比如我想构建UI控制台来可视化作业、步骤、流程):

...
SimpleJob simpleJob = ...;
Step<MyMetadata> myStep = (Step<MyMetadata>)simpleJob.getStep("myStep")
MyMetadata myMetadata = myStep.getCustomMetadata();


不幸的是,Spring Batch API提供了一个迷宫般的构建器来创建具体的类,无法以上述方式扩展作业、步骤或流。Spring Batch文档中没有任何东西表明这是可能的。
有没有人提出如何实现这一点的建议?

cngwdvgl

cngwdvgl1#

看起来你想在步骤/作业之前和之后做一些工作。您是否考虑过使用StepExecutionListener或JobExecutionListener?那些听众允许他们在工作之余做一些工作。例如,您可以将一些数据存储在db、缓存或executionContext(步骤/作业级别)中。如果我没理解错你的需求。

相关问题