5

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

  • 如果客户在一年内购买了两个相同的产品,她将免费获得第三个
  • 最多连续三笔消费超过 200 美元的客户可获得折扣
  • 当客户超过一年不活动时,会生成提醒
  • 当单个订单大于过去 6 个月内的平均订单价值时,会通知主管
  • ...等等,这些只是我脑海中的例子

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

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

我知道 Drools Fusion 事件只是Drools Expert中的事实,所以也许问题可以扩展为:Drools Expert 可以坚持并延迟加载事实吗?

4

1 回答 1

3

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

干杯

于 2011-12-15T12:27:16.847 回答