我是Drools的新手,正在调查我们的产品使用Drools Fusion CEP。我正在执行Drools(在流模式下)融合6.0.2.Final in karaf 2.4.3。
我的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秒钟后因心跳事件丢失而被触发
任何人都可以帮我这个。