Flink定时器怎么实现
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章主要讲解了"Flink定时器怎么实现",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Flink定时器怎么实现"吧!背景需求在电商领域会有这么一个
千家信息网最后更新 2025年12月02日Flink定时器怎么实现背景需求
定时处理逻辑
这篇文章主要讲解了"Flink定时器怎么实现",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Flink定时器怎么实现"吧!
背景需求
在电商领域会有这么一个场景,如果用户买了商品,在订单完成之后,24小时之内没有做出评价,系统自动给与五星好评,我们今天主要使用flink的定时器来简单实现这一功能。
案例详解
自定义source
首先我们还是通过自定义source来模拟生成一些订单数据.
在这里,我们生了一个最简单的二元组Tuple2,包含订单id和订单完成时间两个字段.
public static class MySource implements SourceFunction>{
private volatile boolean isRunning = true;
@Override
public void run(SourceContext> ctx) throws Exception{
while (isRunning){
Thread.sleep(1000);
//订单id
String orderid = UUID.randomUUID().toString();
//订单完成时间
long orderFinishTime = System.currentTimeMillis();
ctx.collect(Tuple2.of(orderid, orderFinishTime));
}
}
@Override
public void cancel(){
isRunning = false;
}
}
定时处理逻辑
先上代码, 我们再来依次解释代码
public static class TimerProcessFuntion
extends KeyedProcessFunction,Object>{
private MapState mapState;
//超过多长时间(interval,单位:毫秒) 没有评价,则自动五星好评
private long interval = 0l;
public TimerProcessFuntion(long interval){
this.interval = interval;
}
@Override
public void open(Configuration parameters){
MapStateDescriptor mapStateDesc = new MapStateDescriptor<>(
"mapStateDesc",
String.class, Long.class);
mapState = getRuntimeContext().getMapState(mapStateDesc);
}
@Override
public void onTimer(
long timestamp, OnTimerContext ctx, Collector 首先我们定义一个MapState类型的状态,key是订单号,value是订单完成时间 在processElement处理数据的时候,把每个订单的信息存入状态中,这个时候不做任何处理,并且注册一个比订单完成时间大于间隔时间(interval)的定时器. 注册的定时任务在到达了定时器的时间就会触发onTimer方法,我们主要在这个里面进行处理。我们调用外部的接口来判断用户是否做过评价,如果没做评价,调用接口给与五星好评,如果做过评价,则什么也不处理,最后记得把相应的订单从MapState删除
感谢各位的阅读,以上就是"Flink定时器怎么实现"的内容了,经过本文的学习后,相信大家对Flink定时器怎么实现这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
订单
评价
时间
定时器
五星
处理
好评
接口
用户
学习
内容
数据
时候
状态
系统
上代
两个
代码
任务
功能
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
实用网络技术实验pdf
软件开发课程教材
全文型数据库包括哪些英文
华为会议终端是服务器吗
网吧服务器怎么调整时间
深圳软件开发公司聚集地区
网络安全 青年担当
软件开发不做无形资产
网络安全大赛团队赛初赛
vb工控软件开发
信息工程专业从事网络安全
卖药网络技术有限公司
高青轻工业管理软件开发公司
专科毕业计算机网络技术做什么
数据库开启事务失败
黑桃服务器是什么
北京嵌入式软件开发平台
企业对供应链的网络安全
国内常用事实数据库有哪些
网络安全涉及的法律
三级linux网络技术
岳阳楼区云峰软件开发经营部
梦幻西游普陀山服务器总汇
在网络安全保护的方式中
怎么查自己的网络安全日志
厦门服务器硬盘
远程主机数据库连接失败
gntc全球网络技术
mysql数据库还原步骤
退款日志数据库