我是Drools融合中的新人。我想用以下条件编写规则。如何在滑动窗口中编写drools规则以满足以下条件?
- 事件数据定期发送到两个属性名为“eventId”和“state”的drools引擎。 例如: -
"data":{"eventId":"evet123","state":1}
- 当第一次事件发生时,它将存储在工作记忆中。
- 在第一个事件之后,无论事件的状态如何检查以前的事件,以及前一个事件的状态是1,当前的事件状态是2,那么在那种情况下执行一些功能。并且当前事件被工作记忆中的先前事件替代。
例如: - 如果(以前的事件状态为1 --->当前事件状态是2时),然后调用函数
注: - 事件ID不是唯一的。它可能与以前的事件相同或不同。
(可根据滑动在此之情况窗口使用长度,但我不kknow如何将此转化REQ中的规则。)
请任何专家的Drools引导我在这个问题上。
并与国家== 2中的数据保持在工作记忆,无限?你是否希望这种情况发生在每对状态== 1/2,无论eventId是什么? - 您是否有任何规则代码 - 您到目前为止尝试了哪些? – laune
啊,是的,你不能用另一个取代一个事实,但你可以收回一个事实。 – laune
1.假设第一个事件的状态为1,第二个事件的状态为2,则满足规则条件。此规则仅适用于相同的eventID。当此规则满足第一个事件放弃并且第二个事件现在成为第一个时,现在具有相同ID的新事件将与该新的第一个eventId进行比较。 – Raj