(我对使用 Drools 有点陌生,所以如果这是一个简单的问题,请原谅)。
我想使用 Drools 来响应式执行规则,这意味着我们可以将插入的“事实”视为“事件”实例。但是,我希望它以在收到事件后立即触发规则的方式执行。但是,如果一个规则可能依赖于多个事件,我如何配置工作记忆,以记住以前的事件。考虑一个非常简单的例子:
假设我有以下规则:
- when (E1) do A1
- when (E2) do A2
- when (E1,E2) do A3
然后,如果时间进展如下,我想遵循要被解雇的规则,例如:
- t=1 , E1 happens => A1 fired
- t=2 , E2 happens => A2 fired + A3 fired
我遇到的问题是,如果我ksession.fireAllRules()
在每次插入后调用,工作记忆就会忘记所有以前的事件。实现我想要的最佳方式是什么?