Drools Fusion支持持久,长时间运行的事件

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

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

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

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

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

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

干杯

Interesting Posts