首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法丢弃部分匹配?

有没有办法丢弃部分匹配?
EN

Stack Overflow用户
提问于 2020-12-16 16:08:54
回答 1查看 68关注 0票数 0

我在监控车辆的动向。每当他们进入或离开geofence时,都会触发一个事件。通过Flink,我想检查一辆车是否在栅栏内至少两个小时。

下面是我使用的模式:

代码语言:javascript
复制
begin("enter").notFollowedBy("exit").within(Time.hours(2)).followedBy("final-exit")

问题是:即使退出“notFollowed”为真,部分"enter“匹配仍然有效,即如果车辆在几天后返回并触发另一个退出围栏事件,则它将通过notFollowedBy规则并导致完全匹配。

有没有办法告诉Flink主动放弃部分匹配?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-18 23:19:30

从逻辑上讲,如果在两天内没有跟随"exit“,则部分"enter”匹配仍然有效,因为在这种情况下,在两个小时内没有跟随"exit“。你能描述一下在什么情况下你想让这样的部分匹配超时吗?例如,如果您希望它在8小时后超时,那么我认为可以这样描述该行为

代码语言:javascript
复制
begin("enter")
  .notFollowedBy("exit").within(Time.hours(2))
  .followedBy("final-exit").within(Time.hours(8))

更新

如果您的目标是过滤掉车辆在2小时内进出geofence的所有情况,然后正确处理其余事件,则可以运行具有两个阶段的管道。第一个阶段可以描述为

代码语言:javascript
复制
begin("enter")
  .followedBy("quick-exit").within(Time.hours(2))

然后,您可以删除与此模式匹配的事件,并对超时的事件进行进一步处理。有关如何使用processTimedOutMatch捕获和发出超时部分模式的详细信息,请参阅Handling Timed Out Partial Patterns,这将是您要考虑进行进一步处理的部分模式。

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

https://stackoverflow.com/questions/65319426

复制
相关文章

相似问题

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