drools时间窗口的使用

请教大佬,10s内出现两次type=='error'的写法,谢谢。
drl:
package com.rules;
import com.gjm.flink.test.drolls.DLoginEvent1;

declare DLoginEvent1
@role( event )
end
rule "error 2 times in 10 seconds"
salience 0
when
DLoginEvent1($userId: userId, $ip: ip, $type: type)
Number(intValue > 1) from accumulate(
DLoginEvent1( $type == "error" ) over window:time( 10s )
)
then
System.out.println("10秒内出现2次错误");
end

DLoginEvent1.scala:
class DLoginEvent1 extends Serializable {
@BeanProperty
var userId: String = null
@BeanProperty
var ip: String = null
@BeanProperty
var type: String = null

def this(userId: String, ip: String, type: String) {
this()
this.userId = userId
this.ip = ip
this.type = type
}

override def toString: String = {
"userId=" + userId + ", ip=" + ip + ", type=" + type
}
}

图片说明

1个回答

每次over window time 时间到了 如何让他 不在触发规则啊

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐