首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Drools中从事件中选择两个不同的属性

如何在Drools中从事件中选择两个不同的属性
EN

Stack Overflow用户
提问于 2016-12-01 22:57:36
回答 1查看 262关注 0票数 0

我正在尝试编写一个drools规则,以检查来自同一流的两个事件是否发生。我有一个遵从性规则类,它包含逻辑(在工作内存中),以便与来自入口点的事件进行比较。我所需要的只是检测两个事件的发生,例如,我想检测事件A已经发生和B发生之后。我用drools语法编写了这个角色。

代码语言:javascript
复制
$comrule : Comprules ( pattern == "response" , isBefore == false)  
Event  (task == $comrule.antecedent) from entry-point StoreOne  
Event (task == $comrule.consequent) from entry-point StoreOne

问题是这种技术不起作用。唯一起作用的就是我写这个的时候

代码语言:javascript
复制
Event  (task == $comrule.antecedent) from entry-point StoreOne  
not Event (task == $comrule.consequent) from entry-point StoreOne

我读了drools文档,但是我找不到任何解决这个问题的方法,任何帮助都会很感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-02 04:45:05

检查两个事件按正确顺序发生的典型模式如下:

代码语言:javascript
复制
Comprules( pattern == "response", !isBefore, $a: antecedent, $b: consequent )
$one: Event( task == $a ) from entry-point StoreOne  
$two: Event( task == $b, this after $one ) from entry-point StoreOne

使用not测试是否没有一个事实,这将是$one到达后的情况,而$two仍然不存在。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40921930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档