Flink onTimer定時器
程式碼例項
public class OnTimerProcesFunction extends KeyedProcessFunction<String, JSONObject, JSONObject> { private ValueState<JSONObject> assetVinState; @Override public void open(Configuration parameters) throws Exception { assetVinState = getRuntimeContext().getState(new ValueStateDescriptor<>("asset-vin-state", JSONObject.class)); } @Override public void processElement(JSONObject value, KeyedProcessFunction<String, JSONObject, JSONObject>.Context ctx, Collector<JSONObject> out) throws Exception { JSONObject data = assetVinState.value(); if (data == null || data.isEmpty()) { out.collect(value); //將當前資料設定進狀態,並且註冊定時器 assetVinState.update(value); // 定時器時間為60秒 ctx.timerService().registerProcessingTimeTimer(ctx.timerService().currentProcessingTime() + 40000L); } else { // 注意:這裡更新的資料沒有註冊定時器,那麼不會觸發定時傳送功能;那這裡最新的更新資料,則需要在下面的onTimer中進行定時器的註冊,併傳送資料到下游 assetVinState.update(value); } } @Override public void onTimer(long timestamp, KeyedProcessFunction<String, JSONObject, JSONObject>.OnTimerContext ctx, Collector<JSONObject> out) throws Exception { //提取狀態資料往下游傳送 JSONObject data = assetVinState.value(); if (data == null || data.isEmpty()) { return; } out.collect(data); // 定時器時間為60秒,這裡設定一個定時器,為了將狀態中vin對應的最新更新資料傳送一次到下游 ctx.timerService().registerProcessingTimeTimer(ctx.timerService().currentProcessingTime() + 40000L); } }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024433/viewspace-2997548/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- flink定時讀取mysqlMySql
- 定時器定時器
- 定時器以及定時器的幾個案例定時器
- iOS定時器iOS定時器
- JavaScript定時器JavaScript定時器
- js定時器JS定時器
- JavaScript 定時器JavaScript定時器
- 核心定時器定時器
- 純生JS輪播,定時器新增和清除定時器JS定時器
- java 中定時器Java定時器
- python定時器Python定時器
- Systemd 定時器教程定時器
- JMeter—定時器(八)JMeter定時器
- 關於定時器定時器
- Go 的定時器Go定時器
- Python 定時器Python定時器
- android定時器Android定時器
- 閉包、定時器定時器
- jmeter(七)定時器JMeter定時器
- 整理:java定時器。Java定時器
- Android 定時器Android定時器
- JavaScript定時器演示JavaScript定時器
- TIM-定時器定時器
- MFC中OnTimer的應用
- 實時計算Flink>產品定價>計量計費
- 關於linux下定時器,多定時器Linux定時器
- [iOS]各種定時器–最全的定時器使用iOS定時器
- workerman定時器問題定時器
- Linux核心定時器Linux定時器
- JavaScript6:定時器JavaScript定時器
- 5.9 jmeter元件-定時器JMeter元件定時器
- (八)定時計數器
- odoo12 定時器Odoo定時器
- Node 定時器詳解定時器
- javascript 定時器工作原理JavaScript定時器
- iOS 動畫-定時器動畫iOS動畫定時器
- [嵌入式]定時器定時器
- JS字串與定時器JS字串定時器