首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Drools融合处理延迟事件

如何使用Drools融合处理延迟事件
EN

Stack Overflow用户
提问于 2012-03-14 07:34:10
回答 1查看 656关注 0票数 1

事件A然后事件B。如果在A 5分钟后没有事件B,则触发规则。

代码语言:javascript
复制
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被触发

我该如何处理这种要求?

EN

回答 1

Stack Overflow用户

发布于 2012-03-14 14:02:52

这个问题没有一个单一的答案,因为有不同的情况。这里介绍的用例很容易修复,但只需使用外部加盖邮票的时间戳即可。假设您的事件包含一个属性(例如日期时间),该属性在源发生时包含时间戳,您可以告诉引擎使用它作为事件的时间戳。例如:

代码语言:javascript
复制
declare Event
    @role( event )
    @timestamp( datetime )
end

在这种情况下,引擎将使用01:00作为事件时间戳,规则将在06:00触发(假设没有发生其他事件),即使event1在02:00到达。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9697624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档