Drools Fusion支持持久的长期运行事件

时间:2011-12-14 18:46:59

标签: java drools complex-event-processing drools-fusion

我正在考虑使用Drools Fusion来实施以下示例规则:

  • 如果客户在一年内购买了两件相同的产品,她将获得免费的第三件产品
  • 在最多连续三次交易中花费超过200美元的客户获得折扣
  • 当客户处于非活动状态超过一年时,会生成提醒
  • 当单个订单大于最后六个monhts中的平均订单价值时,会通知主管
  • ......等等,这些只是我脑海中的例子

所有这些规则都可以使用Drools Fusion轻松表达。然而,在创建原型并查看文档之后,看起来这个产品更适合短期的瞬态事件(股票市场,实时决策)。

问题是:是否需要将所有事件存储在内存中?(可能需要数百万次购买)。此外可以Drools Fusion存储事件,以便它们能够在服务器重启后继续存在吗?(理想情况下在数据库中)。

我知道Drools Fusion事件只是Drools Expert中的事实,所以可能这个问题可以扩展为: Drools Expert可以坚持并懒惰加载事实吗?

1 个答案:

答案 0 :(得分:3)

您可以做的是每次为该客户获得新交易时,按客户加载历史信息。或定期加载信息以查看不活跃的客户。 您提到的所有示例对我来说都是事实。显然,你可以将所有内容建模为事件,但正如你所提到的,这将导致你需要将所有内容都存储在内存中。 要回答关于存储/处理数百万个事件的问题,首先需要回答问题,如果JVM支持将所有这些对象都存储在内存中。

干杯