Flink Timer
Timer简介
Timer定时器是Flink Streaming API提供的用于感知并利用处理时间/事件事件变化的机制
最显示了timer的方式就是KeyedProcessFunction.在其processElement()方法中注册Timer,然后覆盖其onTimer方法作为Timer触发时间的回调逻辑,根据时间特征的不同:
- 处理时间–调用context.timerService().registerProcessingTime()注册;onTimer()在系统时间戳到达timer设定的时间戳时候触发
- 事件时间–调用Context.timerService().registerEventTimer()注册,onTimer()在Flink内部水印到达或超过Timer设定的时间戳触发
Timer使用举例
1.按天实时统计指标并存储在状态中,每天0点清除状态重新统计,就可以在processElement()方法里注册Timer
//按天实时统计指标并存储在状态中,每天0点清除状态重新统计,就可以在processElement()方法里注册Timer
ctx.timerService().registerProcessingTimeTimer(
tomorrowZeroTimeStampMs(System.currentTimeMillis(<