magic_kid_2010
magic_kid_2010
采纳率0%
2019-01-08 20:09

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条回答

  • weixin_44395185 BuGei(布吉儿) 1年前

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

    点赞 评论 复制链接分享

相关推荐