使用Drools基于事件执行操作

时间:2012-07-26 06:45:57

标签: events drools

我想在我们的一个项目中使用drools - 在线购买和销售。

事件就像买书,买笔,买点儿。 这些事件存储在数据库中。

现在,基于之前发生的事件,我想决定结果。

就像说一个人有以下顺序,

1. Buy a book at a price.
2. Sell the same book at a higher price.

然后

Do something based on that.

如果有人这样做了,

1. Buy a kindle.
2. Purchase a book in Science Section of books.

然后

show him the relevant content in the UI.

我将所有列出的内容都作为数据库中的事件。 现在我已经为要完成的动作编写了一个界面,我还完成了在事件发生时传递客户的界面。

现在,什么会给我最好的表现来处理事件并根据事件的顺序做出决定。我无法将所有事件存储在内存中,因为我有很多这些事件。

1 个答案:

答案 0 :(得分:0)

需要考虑不同的方面:

  • 为了向客户推荐其他商品,有Recommendation Engines。如果您的大多数/所有用例都是建议,您可能想要使用其中一种。

  • 不一定需要存储“内存中的所有事件”。实际上,Drools会删除与规则库不再相关的事件。 documentation

  

“事件可能会在工作内存中一段时间​​后自动过期。通常,当根据知识库中的现有规则,事件无法再匹配并激活任何规则时,就会发生这种情况。可以明确定义事件何时到期。“

  • 为了尽早删除事件,我会使用Drools生成聚合数据,例如“喜欢科学主题”,“拥有电子书阅读器”等。这些可以从事件中推断出来但消耗更少的内存。