如何解决带有滑动窗口示例的流口水规则
我是 Drools 的新手,我正在尝试在 Drool 中使用滑动窗口来获取少量传感器数据。我正在关注的文档是 https://docs.jboss.org/drools/release/7.47.0.Final/drools-docs/html_single/index.html#cep-sliding-windows-con_decision-engine
这是我的 POJO 类:
package com.ruletemplate;
public class RuleTemplate {
private String DeviceName;
private String ParameterName;
private int ParameterValue;
private String AlertMessage;
public RuleTemplate( String parametername )
{
this.ParameterName = parametername;
}
public String getParameterName() {
return ParameterName;
}
public void setPropertyName(String parametername) {
this.ParameterName = parametername;
}
public int getParameterValue() {
return ParameterValue;
}
public void setParameterValue(int parametervalue) {
this.ParameterValue = parametervalue;
}
public String getDeviceName() {
return DeviceName;
}
public void setDeviceName(String devicename) {
this.DeviceName = devicename;
}
public String getAlertMessage() {
return AlertMessage;
}
public void setAlertMessage(String alertmessage) {
this.AlertMessage = alertmessage;
}
}
drool 引擎在 Azure Databricks 运行时版本 7.0 ML(包括 Apache Spark 3.0.0、Scala 2.12)上运行
流口水规则定义为:
import com.ruletemplate.RuleTemplate
rule 'Rule_Pump_Controller_Test_Device_12'
agenda-group 'Pump_Controller_Test_Device'
when
ruletemplate: RuleTemplate(ParameterName=='Voltage',ParameterValue > 0,ParameterValue <
40) over window:time(1m)
then
ruletemplate.setAlertMessage(ruletemplate.getDeviceName()+ ','+
ruletemplate.getParameterName() +','+ruletemplate.getParameterValue()+
',3,Nodename,ActionsName');
end
触发规则的方式是:
val ruletemplate=new RuleTemplate(TelemetryName)
ruletemplate.setParameterValue(TelemetryValue.toInt)
ruletemplate.setDeviceName(deviceid)
session.insert(ruletemplate)
agenda.getAgendaGroup(deviceid).setFocus();
session.fireAllRules()
这在没有添加滑动时间窗口的情况下完美运行。添加滑动窗口后,规则会被评估但返回 null 。寻找一些帮助示例或文档,了解我们如何定义带有累积时间的滑动窗口并为上面定义的(没有累加)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。