Spring Batch:动态复合阅读器/处理器/写入器

我见过this (2010)this (SO, 2012),但仍然没有得到我需要的答案......

Spring Batch中是否有选项可以使用动态复合读取器/处理器/写入器?

我们的想法是能够在运行时更换处理器,并且在多处理器(AKA复合处理器)的情况下,可以选择添加/删除/替换/更改处理器的顺序 . 如上所述,读者/作者也一样 .

我想过从DB读取处理器列表(使用缓存?),然后可以更改项目(bean的名称) . 这有意义吗?

EDIT - why do I need this?

有些情况下我使用处理器作为"filters",并且可能会发生业务(客户端)可能更改要求(是的,它非常烦人)并要求在过滤器之间切换(更改优先级) .
其他用例是有多个读取器从不同的数据仓库获取数据,而且 - 客户端不时更改仓库(集成阶段),我不希望每次都重新启动我的应用程序 .
当然还有许多其他用例 . plus this.

谢谢

回答(1)

2 years ago

我已经开始研究这个项目了:

https://github.com/OhadR/spring-batch-dynamic-composite

实现上述问题中的要求 . 如果有人想贡献 - 随意!