事件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 对于实时事件,这是很好的,但在现实生活中,你有事件来的延迟,例如。从一个界面。
例:事件A时间: 01:00 (mm:ss),但在上面02:00收到,规则将在07:00触发,但业务逻辑要求它在06:00被触发
我该如何处理这种要求?
发布于 2012-03-14 14:02:52
这个问题没有一个单一的答案,因为有不同的情况。这里介绍的用例很容易修复,但只需使用外部加盖邮票的时间戳即可。假设您的事件包含一个属性(例如日期时间),该属性在源发生时包含时间戳,您可以告诉引擎使用它作为事件的时间戳。例如:
declare Event
@role( event )
@timestamp( datetime )
end在这种情况下,引擎将使用01:00作为事件时间戳,规则将在06:00触发(假设没有发生其他事件),即使event1在02:00到达。
https://stackoverflow.com/questions/9697624
复制相似问题