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

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

  • BuGei(布吉儿) 2020-01-17 11:24
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大