Wso2 基于日期/时间的CEP查询

Wso2 基于日期/时间的CEP查询,wso2,wso2cep,siddhi,Wso2,Wso2cep,Siddhi,在WSO2 CEP中,我制定了一个执行计划,其中包括以下查询: (如果温度在10秒内连续3次超过20度,则会触发) 我如何才能实现仅在一天中的特殊时间(例如08:00到10:00)应用查询 我是否可以在查询中输入以下内容: having meta_temperature > 3 and HOUR_OF_THE_DAY BETWEEN 8 and 10 您可以使用cron窗口#window.cron而不是使用时间窗口#window.time。您可以在Siddhi[1]中为所需的时间段指定C

在WSO2 CEP中,我制定了一个执行计划,其中包括以下查询: (如果温度在10秒内连续3次超过20度,则会触发)

我如何才能实现仅在一天中的特殊时间(例如08:00到10:00)应用查询

我是否可以在查询中输入以下内容:

having meta_temperature > 3 and HOUR_OF_THE_DAY BETWEEN 8 and 10

您可以使用cron窗口
#window.cron
而不是使用时间窗口
#window.time
。您可以在Siddhi[1]中为所需的时间段指定Cron表达式字符串。有关cron表达式字符串的更多信息,请参阅quartz scheduler文档[2]

[1]


[2]

如果我像这样设置cron.window:window.cron(“0/10 0-30 11**?”)。表达式每隔10秒定期求值一次。但使用window.time,结果将在10秒内发生3个事件后立即返回。在cron时间窗口中,如果事件正好发生在两个cron窗口之间,则可能会发生错过的事件。有没有可能以某种方式绕过这个问题呢?我通过使用一个表达式和一个window.time,将结果插入一个临时流,并使用window.cron的临时流插入第二个表达式来解决这个问题。也许不优雅,但现在它的工作方式我想象的。非常感谢你!
having meta_temperature > 3 and HOUR_OF_THE_DAY BETWEEN 8 and 10