如何解决通过ProcessWindowFunction实现onTimer函数
是否可以通过onTimer()
而不是ProcessWindowFunction
来实现KeyedProcessFunction
方法,还是有其他方法可以实现?
我具有此结构,无法更改:
stream.window(EventTimeSessionWindows.withGap(Time.minutes(gapTime))).allowedLateness(Time.minutes(5000))
.process(new MyProcessFunction());
/*The idea is to use the onTimer method or a similiar method if exist inside MyProcessFunction*/
public class MyProcessFunction extends ProcessWindowFunction<IN,OUT,KEY,W>{}
亲切的问候!
解决方法
ProcessWindowFunction
无权使用计时器。它的唯一作用是在窗口的触发器返回FIRE时处理窗口的内容。
触发器可以具有计时器。因此,一种可能的解决方案可能是使用自定义触发器,该触发器使ProcessWindowFunction
具有基于时间的附加触发。
在窗口API不够灵活的情况下,另一种解决方案是使用KeyedProcessFunction
来实现自己的自定义窗口。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。