我是 Drools 的新手,正在研究将 Drools Fusion CEP 用于我们的产品。我正在 karaf 2.4.3 中执行 Drools(以流模式)融合 6.0.2.Final。
我的 kmodule.xml
<kbase name="sampleKBase" packages="com.sample.heartbeat" eventProcessingMode="stream" default="true">
<ksession name="sampleKSession" type="stateful" default="true" clockType="realtime">
</ksession>
</kbase>
我的规则:
package com.sample.heartbeat
import com.sample.droolsfusion.HeartBeat;
declare HeartBeat
@role(event)
deviceId : int
currentCheckIntime : long
end
rule "Sound the alarm"
when
$h: HeartBeat($deviceId : deviceId, $currentCheckIntime: currentCheckIntime) from entry-point "MonitoringStream"
not( HeartBeat( deviceId == $deviceId, currentCheckIntime > $currentCheckIntime , this after[0s,10s] $h ) from entry-point "MonitoringStream")
then
// Sound the alarm
System.out.println("Sound" + $h);
end
当我从 发送事件时BundleActivator
,在缺少心跳事件 10 秒后不会触发事件
谁可以帮我这个事。