Esper 规则语言:仅在一定时间段内满足条件后才触发规则

Esper rule language: fire rule only after condition is fulfilled for a certain time period

我想编写一个规则,当心率高于 160 并持续 5 分钟时触发。我想出的规则如下:

 EPAdministrator cepRule3 = cep.getEPAdministrator();
        EPStatement cepStatementRule3 = cepRule3.createEPL("select * from "
                + "HeartRate.win:time(5 min) "
                + "group by macAddress "
                + "having min(heartrate) > 160");
        cepStatementRule3.addListener(new rule3Listener());

我的心率 class 有以下字段:

int heartrate;
String heartratesTimestamp;
String macAddress;

我面临的问题是每次心率高于 160 时都会触发此规则。相反,我希望它仅在心率保持在 160 以上 5 分钟时触发。我该如何调整这个规则?

英超: 每个(心率(心率>160)->(计时器:间隔(5 分钟)而不是心率(心率<=160))

或者简单地使用和在 Java 代码中: EPStatement cepStatementRule3 = cepRule3.createEPL("every(HeartRate(heartrate>160) -> (timer:interval(5 min) and not HeartRate(heartrate<=160))"); cepStatementRule3.addListener(new rule3Listener());

在 Esper 文档中查找 EPL 模式语法。