我想在我们的一个项目中使用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.
我将所有列出的内容都作为数据库中的事件。 现在我已经为要完成的动作编写了一个界面,我还完成了在事件发生时传递客户的界面。
现在,什么会给我最好的表现来处理事件并根据事件的顺序做出决定。我无法将所有事件存储在内存中,因为我有很多这些事件。
答案 0 :(得分:0)
需要考虑不同的方面:
为了向客户推荐其他商品,有Recommendation Engines。如果您的大多数/所有用例都是建议,您可能想要使用其中一种。
不一定需要存储“内存中的所有事件”。实际上,Drools会删除与规则库不再相关的事件。 documentation说
“事件可能会在工作内存中一段时间后自动过期。通常,当根据知识库中的现有规则,事件无法再匹配并激活任何规则时,就会发生这种情况。可以明确定义事件何时到期。“