活动A 然后活动B 。如果在A 5分钟后没有事件B,则触发规则。
when
time1:Event() from entry-point xx
not (Event(this after[ 0,5m ] time1) from entry-point xx)
then
...
end
对于工作正常的实时事件,但在现实生活中,您会有延迟的事件,例如。来自界面。
示例:事件时间:01:00(mm:ss)但在02:00收到上述规则将在07:00触发,但业务逻辑将要求在06:00触发
我该如何处理这种要求?
答案 0 :(得分:1)
问题没有一个答案,因为有不同的情况。您在此处介绍的用例很容易修复,但只需使用外部标记的时间戳。假设您的事件包含一个属性(例如日期时间),该属性包含源发生时的时间戳,您可以告诉引擎将其用作事件的时间戳。 E.g:
declare Event
@role( event )
@timestamp( datetime )
end
在这种情况下,引擎将使用01:00作为事件时间戳,规则将在06:00触发(假设没有其他事件发生),即使event1在02:00到达。