我见过this (2010)和this (SO, 2012),但还是没有得到我需要的答案...Spring Batch的:动态复合读写器/处理器/作家
是否有Spring Batch的一个选项,有一个动态的复合读写器/处理器/写入器?
这个想法是有能力在运行时替换处理器,并且在多处理器(AKA复合处理器)的情况下,可以选择添加/删除/替换/改变处理器的顺序。如前所述,读者/作者也是如此。
我想到了像从数据库中读取处理器列表(使用缓存?),并且可以更改项目(bean的名称)。这有意义吗?
编辑 - 为什么我需要这个?
有些情况下,我使用处理器作为“过滤器”,它可能会发生业务(客户端)可能会改变需求(是的,这是非常讨厌),并要求切换过滤器(改变优先级)。
其他用例有多个读取器从不同的数据仓库获取数据,并且客户不时更改仓库(集成阶段),并且我不希望每次都重新启动我的应用程序。
当然还有很多其他用例。 plus this.
感谢
这样做的目的是什么?通常批处理作业是静态的。也许Spring Batch不是正确的工具。如果你告诉我更多的需求,我可以提供建议。 –
有些情况下,我使用处理器作为“过滤器”,并且可能会发生业务(客户端)可能会更改需求(是的,这非常烦人)并要求在过滤器之间切换(更改优先级)。其他用例是有多个读取器从不同的数据仓库获取数据,并且客户不时更改仓库(集成阶段)。所以我不希望我的应用每次都重新启动。 – OhadR
但是你不需要交换处理器。但是你的处理器可以选择执行什么样的代码。并且在阅读器中,您可以更改数据源 –