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
- 定時器以及定時器的幾個案例定時器
- JavaScript定時器JavaScript定時器
- iOS定時器iOS定時器
- Timer(定時器)定時器
- JavaScript 定時器JavaScript定時器
- js定時器JS定時器
- python定時器Python定時器
- 純生JS輪播,定時器新增和清除定時器JS定時器
- 實時計算Flink>產品定價>計量計費
- Linux核心定時器Linux定時器
- JMeter—定時器(八)JMeter定時器
- Qt - QTimer(定時器)QT定時器
- python flask 定時器PythonFlask定時器
- TIM-定時器定時器
- Java - Timer定時器Java定時器
- Systemd 定時器教程定時器
- java 中定時器Java定時器
- Qt QTimer定時器QT定時器
- GO的定時器Timer 和定時任務cronGo定時器
- JavaScript6:定時器JavaScript定時器
- 5.9 jmeter元件-定時器JMeter元件定時器
- Java之定時器TimerJava定時器
- 19. 通用定時器定時器
- odoo12 定時器Odoo定時器
- BIOS相關定時器iOS定時器
- workerman定時器問題定時器
- (八)定時計數器
- 路由器WiFi定時開關設定教程 路由器WiFi定時開關怎麼設定?路由器WiFi
- JMeter定時器設定延遲與同步JMeter定時器
- 【JavaScript定時器小案例】常見的幾種定時器實現的案例JavaScript定時器
- flink調優之RocksDB設定
- 1.15 JavaScript6:定時器JavaScript定時器
- iOS 定時器耗電探究iOS定時器
- PHP定時器那點事PHP定時器
- js 定時器 繫結classJS定時器
- .NET中有多少種定時器定時器
- 輪播圖(JavaScript定時器)JavaScript定時器