В WSO2 CEP я составил план выполнения, который включает в себя следующий запрос: (он будет срабатывать, если температура будет подаваться 20 градусов 3 раза подряд в течение 10 секунд)Запрос CEP на основе даты/времени дня
from MQTTstream[meta_temperature > 20]#window.time(10 sec)
select count(meta_temperature) as meta_temperature
having meta_temperature > 3
insert into out_temperatureAlarm
Как я могу достичь того, что запрос применяется только в том случае, если это особое время суток, например 08:00 до 10:00 часов?
Есть ли что-то, что я мог бы поставить в запрос как:
having meta_temperature > 3 and HOUR_OF_THE_DAY BETWEEN 8 and 10
Если я установить cron.window так: window.cron ("0/10 0-30 11 * *?"). Выражение периодически оценивается каждые 10 секунд. Но с результатом window.time результат возвращается сразу после трех событий за 10 секунд. С временным окном cron могут возникать пропущенные события, если события происходят между двумя окнами cron. Можно ли как-то обойти это? – Blackvenom
Хорошо, я решил это, используя одно выражение с window.time, вставив результат во временный поток и второе выражение, используя временный поток с окном.cron. Может быть, не изящный, но теперь он работает так, как я себе представлял. Большое спасибо! – Blackvenom