作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个场景,如果第二个事件在 x 秒内没有跟随第一个事件,我必须更改状态。例如用户未在 100 分钟内注销,认为他处于无效状态。如何使用当前的模式操作来设计?
最佳答案
由于这已经实现,我想为那些来这里寻找答案的人回答这个问题。
从 Flink 1.0.0 开始,这可以通过处理超时模式来完成,例如,如果您的 CEP 模式是这样的:
示例部分来自 Flink Website (1.2 和 1.3 之间有一些重大变化,请相应调整您的代码,此答案侧重于 1.3)
Pattern description: - Get first event of type "error", followed by a second event event of type "critical" within 10 seconds
Pattern<Event, ?> pattern = Pattern.<Event>begin("start")
.next("middle").where(new SimpleCondition<Event>() {
@Override
public boolean filter(Event value) throws Exception {
return value.getName().equals("error");
}
}).followedBy("end").where(new SimpleCondition<Event>() {
@Override
public boolean filter(Event value) throws Exception {
return value.getName().equals("critical");
}
}).within(Time.seconds(10));
PatternStream<BAMEvent> patternStream = CEP.pattern(inputStream, pattern)
DataStream<Either<String, String>> result = patternStream.select(new PatternTimeoutFunction<Event, String>() {
@Override
public String timeout(Map<String, List<Event>> map, long l) throws Exception {
return map.toString() +" @ "+ l;
}
}, new PatternSelectFunction<Event, String>() {
@Override
public String select(Map<String, List<Event>> map) throws Exception {
return map.toString();
}
});
关于apache-flink - NOT followBy 的 Apache Flink CEP 模式操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36573715/
我有一个场景,如果第二个事件在 x 秒内没有跟随第一个事件,我必须更改状态。例如用户未在 100 分钟内注销,认为他处于无效状态。如何使用当前的模式操作来设计? 最佳答案 由于这已经实现,我想为那些来
我是一名优秀的程序员,十分优秀!