请教大佬,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
}
}