什么是最好的规则框架,可以与Spring Batch(500k对象)一起使用?

时间:2011-10-03 06:04:16

标签: drools spring-batch

我在之前的项目中分别使用了spring-batch和drools。在我目前的项目中,我有一个设计,我需要处理多达500k xml对象,将它们转换为jaxB,对每个对象应用规则(规则本身相当简单:比较属性并更新'通知'中的两个标志对象),最后发送一个事件,以便一个spring web流视图模型(可以是一个监听器)将自行更新。这不是设计的 要求,但它是我实现的: 1)ItemReader(JaxB) 2)ItemProcessor:-maps到ksession(有状态)并基于drl文件触发规则。 3)ItemWriter:准备必要的清理并提出适当的事件

在我看来逻辑本身是直截了当的,但是当我添加批处理作业的所有胶合代码:itemReader,Itemprocessor等时,一个简单的规则不起作用。此外,在阅读了几个论坛之后,看起来RETE algo在批量应用程序上不会很好地扩展。

总之,流口水是在春季批量中集成基本规则框架的最佳方式,还是有任何轻量级替代方案?

2 个答案:

答案 0 :(得分:1)

  • 规则本身相当简单:比较属性并更新“通知”对象中的两个标记

无需 任何 Rules Framework。这就是Spring Batch的ItemProcessor用于

来自ItemProcessor JavaDocs:

“..一个扩展点,允许在面向项目的处理场景中应用业务逻辑

不需要使用Drools或任何其他规则引擎使事情复杂化,除非你真的需要它=>例如有几十个/几百个复杂的规则+对代码来说并不容易。

答案 1 :(得分:0)

通常RETE算法不是一个问题,是一个巨大的优势。您需要设计您的解决方案,并假设它将是一个批处理过程,它将正常工作。您需要考虑到方案中的巨大开销是从XML代码创建所有500k对象。如果正确设计业务规则,一旦获得对象,它将正确执行。