【问题标题】:Drools Fusion Out of Order eventsDrools Fusion 乱序事件
【发布时间】:2017-09-19 11:08:15
【问题描述】:

我正在使用 Drools fusion 来处理实时事件。每个事件都有一个时间戳字段。 问题是事件有时可能会出现问题。流口水融合可以处理这种情况吗?如果可以,如何处理?

谢谢

【问题讨论】:

    标签: drools drools-fusion drools-kie-server


    【解决方案1】:

    如果 A 被标记为 0:00:00,B 被标记为 0:01:00,B 到达并且你有规则

    rule "A before B"
    when
        $b: B()
        not A( this before $b )
    then ... end
    

    它会开火。

    您可以使用事实插入时间作为时间戳。

    保留原始时间戳作为属性。如果发生“情况”,也许您会想看看它。视情况而定。

    添加如果您有一个最大延迟 dt,您可以将所有到达的事件放入“隔离”中以应对此延迟。在插入 A 之前,请检查所有其他流(源)中是否存在 A 之前的事件 B 并做出相应的反应。一切都会至少延迟 dt 做出反应。

    【讨论】:

    • 所以插入 B 规则将触发并且不会等待 A,因为 A 已经发生并且出现故障,所以我们可以指定任何等待时间,直到它等待延迟事件等等?否则会是个问题
    • 我添加了另一个建议。这将是您必须实施的事情。
    • 所以我必须维护自定义存储库,在其中保存 dt 时间的事件,然后插入 kie 会话。你是在建议吗?
    • 您对从 kiesession 序列化用户会话数据有任何想法/示例代码吗?是否可以这样做?
    • 我不会称它为“存储库”,但是可以。还有什么? - 序列化是另一个主题,但是:只需获取所有内容(API 方法!)并对其进行序列化
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-10
    • 2016-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-28
    相关资源
    最近更新 更多