drools - 带有滑动窗口示例的流口水规则
问题描述
我是 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;
}
}
流口水引擎在 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 。寻找一些帮助以获取示例或文档,了解我们如何在有限的时间长度内定义滑动窗口以及定义的那些以上(不累积)。
解决方案
推荐阅读
- ios - 如何修复objective-c上的WebKit崩溃
- android - 您的 Flutter 应用程序是使用旧版本的 Android 嵌入创建的
- javascript - React - 使用 onChange 和 onKeyDown 时输入不起作用
- linux - 为什么此行在“|”附近给出语法错误
- python - 使子小部件在 python 上使用 urwid 获取输入按键
- flutter - 如何在飞镖中将 "["1","2"]" 转换为 ["1","2"]?
- android - Flutter 构建 apk 失败
- karate - 如何处理空手道测试中带有签名的请求?
- ios - 如何在 SwiftUI 中将字符串数组数据传递给 navigationLink
- python - How to avoid hard coding in python for replacing short form words and also young words?