解剖屎山,寻觅黄金之第二弹|世界速看料
- 商洛在线
- 2023-06-01 15:03:28
- 来源:程序员客栈
大家好,我3y啊。由于去重逻辑重构了几次,好多股东直呼看不懂,于是我今天再安排一波对代码的解析吧。austin支持两种去重的类型:N分钟相同内容达到N次去重和一天内N次相同渠道频次去重。
【资料图】
在最开始,我的第一版实现是这样的:
publicvoidduplication(TaskInfotaskInfo){//配置示例:{"contentDeduplication":{"num":1,"time":300},"frequencyDeduplication":{"num":5}}JSONObjectproperty=JSON.parseObject(config.getProperty(DEDUPLICATION_RULE_KEY,AustinConstant.APOLLO_DEFAULT_VALUE_JSON_OBJECT));JSONObjectcontentDeduplication=property.getJSONObject(CONTENT_DEDUPLICATION);JSONObjectfrequencyDeduplication=property.getJSONObject(FREQUENCY_DEDUPLICATION);//文案去重DeduplicationParamcontentParams=DeduplicationParam.builder().deduplicationTime(contentDeduplication.getLong(TIME)).countNum(contentDeduplication.getInteger(NUM)).taskInfo(taskInfo).anchorState(AnchorState.CONTENT_DEDUPLICATION).build();contentDeduplicationService.deduplication(contentParams);//运营总规则去重(一天内用户收到最多同一个渠道的消息次数)Longseconds=(DateUtil.endOfDay(newDate()).getTime()-DateUtil.current())/1000;DeduplicationParambusinessParams=DeduplicationParam.builder().deduplicationTime(seconds).countNum(frequencyDeduplication.getInteger(NUM)).taskInfo(taskInfo).anchorState(AnchorState.RULE_DEDUPLICATION).build();frequencyDeduplicationService.deduplication(businessParams);}
那时候很简单,基本主体逻辑都写在这个入口上了,应该都能看得懂。后来,群里滴滴哥表示这种代码不行,不能一眼看出来它干了什么。于是怒提了一波pull request重构了一版,入口是这样的:
publicvoidduplication(TaskInfotaskInfo){//配置样例:{"contentDeduplication":{"num":1,"time":300},"frequencyDeduplication":{"num":5}}Stringdeduplication=config.getProperty(DeduplicationConstants.DEDUPLICATION_RULE_KEY,AustinConstant.APOLLO_DEFAULT_VALUE_JSON_OBJECT);//去重DEDUPLICATION_LIST.forEach(key->{DeduplicationParamdeduplicationParam=builderFactory.select(key).build(deduplication,key);if(deduplicationParam!=null){deduplicationParam.setTaskInfo(taskInfo);DeduplicationServicededuplicationService=findService(key+SERVICE);deduplicationService.deduplication(deduplicationParam);}});}
我猜想他的思路就是把构建去重参数和选择具体的去重服务给封装起来了,在最外层的代码看起来就很简洁了。后来又跟他聊了下,他的设计思路是这样的:考虑到以后会有其他规则的去重就把去重逻辑单独封装起来了,之后用策略模版的设计模式进行了重构,重构后的代码 模版不变,支持各种不同策略的去重,扩展性更高更强更简洁
确实牛逼。
我基于上面的思路微改了下入口,代码最终演变成这样:
publicvoidduplication(TaskInfotaskInfo){//配置样例:{"deduplication_10":{"num":1,"time":300},"deduplication_20":{"num":5}}StringdeduplicationConfig=config.getProperty(DEDUPLICATION_RULE_KEY,CommonConstant.EMPTY_JSON_OBJECT);//去重ListdeduplicationList=DeduplicationType.getDeduplicationList();for(IntegerdeduplicationType:deduplicationList){DeduplicationParamdeduplicationParam=deduplicationHolder.selectBuilder(deduplicationType).build(deduplicationConfig,taskInfo);if(Objects.nonNull(deduplicationParam)){deduplicationHolder.selectService(deduplicationType).deduplication(deduplicationParam);}}}
到这,应该大多数人还能跟上吧?在讲具体的代码之前,我们先来简单看看去重功能的代码结构(这会对后面看代码有帮助)
去重的逻辑可以统一抽象为:在X时间段内达到了Y阈值,还记得我曾经说过:「去重」的本质:「业务Key」+「存储」。那么去重实现的步骤可以简单分为(我这边存储就用的Redis):
通过Key从Redis获取记录判断该Key在Redis的记录是否符合条件符合条件的则去重,不符合条件的则重新塞进Redis更新记录为了方便调整去重的参数,我把X时间段和Y阈值都放到了配置里{"deduplication_10":{"num":1,"time":300},"deduplication_20":{"num":5}}。目前有两种去重的具体实现:
1、5分钟内相同用户如果收到相同的内容,则应该被过滤掉
2、一天内相同的用户如果已经收到某渠道内容5次,则应该被过滤掉
从配置中心拿到配置信息了以后,Builder就是根据这两种类型去构建出DeduplicationParam,就是以下代码:
DeduplicationParamdeduplicationParam=deduplicationHolder.selectBuilder(deduplicationType).build(deduplicationConfig,taskInfo);
Builder和DeduplicationService都用了类似的写法(在子类初始化的时候指定类型,在父类统一接收,放到Map里管理)
而统一管理着这些服务有个中心的地方,我把这取名为DeduplicationHolder
/***@authorhuskey*@date2022/1/18*/@ServicepublicclassDeduplicationHolder{privatefinalMapbuilderHolder=newHashMap<>(4);privatefinalMap serviceHolder=newHashMap<>(4);publicBuilderselectBuilder(Integerkey){returnbuilderHolder.get(key);}publicDeduplicationServiceselectService(Integerkey){returnserviceHolder.get(key);}publicvoidputBuilder(Integerkey,Builderbuilder){builderHolder.put(key,builder);}publicvoidputService(Integerkey,DeduplicationServiceservice){serviceHolder.put(key,service);}}
前面提到的业务Key,是在AbstractDeduplicationService的子类下构建的:
而具体的去重逻辑实现则都在LimitService下,{一天内相同的用户如果已经收到某渠道内容5次}是在SimpleLimitService中处理使用mget和pipelineSetEX就完成了实现。而{5分钟内相同用户如果收到相同的内容}是在SlideWindowLimitService中处理,使用了lua脚本完成了实现。
LimitService的代码都来源于@caolongxiu的pull request,建议大家可以对比commit再学习一番:https://gitee.com/zhongfucheng/austin/pulls/19
1、频次去重采用普通的计数去重方法,限制的是每天发送的条数。
2、内容去重采用的是新开发的基于redis中zset的滑动窗口去重,可以做到严格控制单位时间内的频次。
3、redis使用lua脚本来保证原子性和减少网络io的损耗
4、redis的key增加前缀做到数据隔离(后期可能有动态更换去重方法的需求)
5、把具体限流去重方法从DeduplicationService抽取出来,DeduplicationService只需设置构造器注入时注入的AbstractLimitService(具体限流去重服务)类型即可动态更换去重的方法 6、使用雪花算法生成zset的唯一value,score使用的是当前的时间戳
针对滑动窗口去重,有会引申出新的问题:limit.lua的逻辑?为什么要移除时间窗口的之前的数据?为什么ARGV[4]参数要唯一?为什么要expire?
A: 使用滑动窗口可以保证N分钟达到N次进行去重。滑动窗口可以回顾下TCP的,也可以回顾下刷LeetCode时的一些题,那这为什么要移除,就不陌生了。
为什么ARGV[4]要唯一,具体可以看看zadd这条命令,我们只需要保证每次add进窗口内的成员是唯一的,那么就不会触发有更新的操作(我认为这样设计会更加简单些),而唯一Key用雪花算法比较方便。
为什么expire?,如果这个key只被调用一次。那就很有可能在redis内存常驻了,expire能避免这种情况。
推荐项目最后再叨叨吧,很多人可能会发一段截图,跑来问我为什么要这样写,为什么要以这种方式实现,能不能以这种方式实现。这时候,我更想看到的是:你已经实现了第二种方式了,然后探讨你写的这种方案好不好,现有的代码差在哪里。
毕竟问问题很简单,我又不是客服,总不能没诚意的问题我都得一一回答吧。
如果想学Java项目的,我还是强烈推荐我的开源项目消息推送平台Austin,可以用作毕业设计,可以用作校招,可以看看生产环境是怎么推送消息的。
仓库地址(可点击阅读原文跳转):https://gitee.com/zhongfucheng/austin
我开通了股东服务内容,感兴趣可以点击下方看看,主要针对的是项目哟
VIP服务
标签:
- 永煤集团陈四楼煤矿:“清凉风”直接吹到工作面
- 市场 | 宁夏:加强风险隐患排查,文旅市场秩序良好-每日热门
- 当前视讯!河北科技大学在职研究生录取分数线是多少?
- 挥桨破浪!中国龙舟公开赛在贵州铜仁激情开赛 天天新要闻
- 【融媒体中心新闻播报】都匀:黄桃喜迎丰收
- 江苏兴化:为困境、留守儿童织密假期“关爱网”|独家
- 天天消息!“稻+”综合种养!遵义生态渔业提档升级
- 焦点报道:2023年广东汕头市第五期普通话报名时间6月26起 考试时间7月3日起
- 教育部发布2023年高考志愿填报十问十答 天天看热讯
- 世界即时看!鱼缸怎么翻缸消毒_鱼缸怎么翻缸
- 2023年上半年陕西商洛中小学教师资格认定体检及现场确认通知
- 2023春季河北武汉高中阶段教师资格认定网上报名审核结果公示
- 天天热讯:上市公司三达膜官微祝贺总经理女儿获高考单科状元 此前教育部已严禁炒作 律师:属不当披露
- 天天热文:2023上半年北京市延庆区第二次中小学教师资格认定公告
- 热讯:百姓看联播|体育消费 2亿元优惠
- 天天热资讯!2023年第4期福建泉州普通话考试时间7月28日起 报名时间7月10日起
- 天天速看:湖南省城市等级划分!长沙没有意外,二线再次空缺,常德升级三线
- 焦点讯息:这个端午,我们看到了什么?
- 每日精选:【网络中国节·端午】贵州沿河:百舸争流庆端午
- 百万医疗报销特效药吗?怎么报销特效药?
- 往来会计工作职责(会计工作职责)
- 6月25日《西安日报》速览 今日热搜
- 每日观点:新华社送你一本22城文化指南
- 天天资讯:济南红叶谷好玩吗多少钱(济南红叶谷好玩吗)
- 焦点速讯:山西加快焦化行业调整升级,年内将全面关停4.3米焦炉
- 【全球播资讯】端午假期甘肃排名前五热门景点均在兰州
- 紧盯目标 驭势笃行——甘肃文旅强省建设系列深度报道之靶向篇_速看料
- 颜值高、空间强、科技配置高,这台7万级家轿才是年轻人的菜-世界观点
- 6月25日西乌珠穆沁旗金田氢氟酸价格暂稳
- 《超激斗梦境》改动后变良心了?玩家评论:有点离谱了|世界即时
- 昭通市1名干部接受纪律审查和监察调查-今日看点
- 在圣保罗咖啡节感受咖啡文化 环球观天下
- 热搜第一!又要调休 这次是“休八上七”!|快播报
- 假期里徐州10万人次观影|天天观热点
- 连云港:加紧生产外贸产品
- 英文发音碧池是什么意思_英语 ldquo 碧池 rdquo 是什么意思
- 微视频|大地诗篇|焦点热文
- 全球关注:“发现乡村之美·十佳美丽村落”名单公布
- 世界观焦点:本台今天起开设专栏《警钟长鸣抓安全 人人事事讲安全》 警钟长鸣抓安全 人人事事讲安全丨宁夏各部门结合职能全面开展安全风险隐患排查整治
- 四川全面开展燃气安全专项排查整治
- 看谁收得多,比谁损失少!我省小麦机收减损活动掠影
- 环球即时看!700多个品种!第十届上海荷花睡莲展要来啦!
- 【聚看点】海南公布高考分数线:本科批普通类483分
- 【新疆哪个银屑病医院好点】牛皮顽癣用什么药
- 带您了解ADI高性能电荷泵解决方案 微头条
- 重点聚焦!“假期”变“工期”,按下“快进键”
- 博物馆里感受“方正之间的中华文明”
- 2023年广西中级会计职称报名入口
- 微视频|大地诗篇 全球微动态
- 焦点热门:假面骑士Tycoon武神剑形态数值曝光,防御力很高的最终形态,没有特殊能力的白板形态
- 全球最资讯丨南通:全力支持中小微企业纾困增产增效
- 环球今亮点!2023年江苏徐州中级会计职称什么时候报名及开通入口
- 关注:2023年宁夏中级会计职称报名入口
- 农村户口一次性补缴社保有要求吗?从两方面为您介绍
- 2023年江苏昆山中级会计职称什么时候报名及开通入口
- 泰州出台加快推动沿江港口高质量发展实施意见
- 世界热头条丨Win11删除9个文件夹功能引众怒!微软:不改了
- 2023年陕西中级会计职称报名入口
- 宝马 M3 旅行车终于来到欧洲-天天日报
- 一横四纵 四河连通 凉州区全速推进调蓄水池工程建设-环球要闻
- 弱水环流荡碧波 金色胡杨耀陇原 金塔擦亮全域旅游“金名片”-热资讯
- 武汉市少年儿童图书馆暑假开放时间公告 当前视点
- 2023武汉中小学生免费夏令营活动报名条件是什么
- 天天速读:成县五彩圣女果抢“鲜”上市
- 宁县小香包“绣”出致富大产业-世界微动态
- 俄将撤销对普里戈任的刑事立案 “瓦格纳”部队撤回野外营地
- 空气炸锅和烤箱的区别 微资讯
- 交易额3年增长近三倍!中国(梅州)跨境电子商务综合试验区建设成效初显
- 全球快资讯丨好消息!商运司新增一批新能源纯电动车上线运营
- A股遇上端午“劫”?不要被直觉所俘虏 弱市反而酝酿着高收益!“钟摆运动”正在底部|焦点报道
- 天天看热讯:江西省畜禽屠宰三年行动方案出台
- 查计划 读章程 预填表 早提交 再确认 填报志愿注意“五部曲” 环球今日报
- 这些高考信息,千万别在朋友圈乱晒!|天天热头条
- 空调上下风和左右风哪个凉快
- 猴中贵族黔金丝猴,这样的"山间精灵"你爱了吗? 世界滚动
- 全球热点!我国储粮新技术处于国际领先水平 “智慧粮库”让小麦“冻龄”
- “非遗民俗+传统文化”营造主客共享新空间 构建文化和旅游深度融合新场景 今日热议
- 商洛4个农产品获“国字号”品牌认证
- 构建“景区+村庄”联合机制 一方山水绘就增收致富新画卷
- 焦点!多地持续高温 专家提示科学预防重点人群中暑
- 正在公示!商洛这些学校拟获省级荣誉!|播资讯
- 苏州上海轨道交通互通 长三角核心城市加速深度同城化
- 买房贷款50万需要什么条件_环球今日报
- 【天天新要闻】宝武澳大利亚西坡项目在澳大利亚珀斯开业
- 公积金贷款买房可以写两个人的名字吗 天天新消息
- 环球热议:遇到这种虫子 千万别挤压!夏季外出应该怎样防虫
- 端午假期陕西消费市场持续火热 全球最资讯
- 炎炎夏日,来毕节这里解锁避暑新玩法! 微速讯
- IBM与软件公司Apptio就收购深入谈判 或50亿美元成交
- 进门墙怎么装饰好看
- 官网宣?山东泰山俱乐部官网已将孙准浩资料移除_观热点
- 热讯:什么是dsg变速箱(dsg变速箱的工作原理及特点)
- 端午假期,绿城文明旅游蔚然成风|世界热文
- 全球观焦点:甘肃7个曲艺项目亮相全国非遗曲艺周
- 热点在线丨这个端午假期 甘肃最热门景点在兰州
- 端午假期 兰州野生动物园迎来亲子游客流高峰
- 暴雨黄色预警:广西广东江西等地部分地区将现大暴雨 全球新资讯
- 多地持续高温 专家提示科学预防重点人群中暑 天天短讯
- 今明两天兰州市以阵雨转晴天气为主 出门莫忘带上雨伞 焦点快报
- 河南油田工会获省工会经审规范化考核特等奖 世界热门
相关推荐
三氯蔗糖是什么糖 三氯蔗糖对血糖有影响吗?
聚焦 2023/04/23松茸为什么不能水洗 松茸学名是什么?
聚焦 2023/04/23北海是哪个省城市 北海有什么特色小吃?
聚焦 2023/04/23鱼缸用什么消毒杀菌好 鱼缸定期杀菌用什么药?
聚焦 2023/04/23海水盐度一般是多少 海水成分包括哪些?
聚焦 2023/04/23热门资讯 日 周 总
安徽省率先实现红托竹荪工厂化种植 助推食药用菌产业错位化高质量发展
健康 2022/09/05中山首个“港澳药械通”医疗器械获批 目前国内尚无同类产品
健康 2022/08/29辽宁省建立首批食品安全抽检专家库 化解食品安全风险隐患
健康 2022/08/192022太湖湾生命健康未来大会举行 无锡推动生命健康产业发展跃级
健康 2022/08/0862岁阿姨“捂出”热射病被送进ICU 免疫力低下人群更要注意这些
健康 2022/07/21暑期档全国电影票房破75亿 共有91部新片上映
节目 2022/08/16广东文艺院团积极寻求创作与市场全面“破圈” 激活高雅文艺演出“内循环”
节目 2022/08/02冯小刚新剧时隔25年重回小荧幕 多个话题均已实现阅读量破亿
节目 2021/07/14动画站上7月影市“C位” 吸引多家公司掘金
节目 2021/07/06人工智能等技术赋能 推动传统戏曲文化与表演创新
节目 2021/07/02我国短视频领域市场规模为2051.3亿元 同比增长57.5%
直播 2021/06/17TFBOYS吸金力也不容小觑 峰峻文化能否顺利运营还需一定的市场机遇
直播 2021/06/16打造自营电商 “美团小店”加码实物电商
直播 2021/06/08发力企业采购领域 京东申请注册京东工业商标
直播 2021/06/04全国已有345个城市包裹实现“半日达”
直播 2021/06/02推荐More
- 看谁收得多,比谁损失少!我省小麦机收减损活动掠影
- 【人人讲安全 个个会应急】全省重大事故隐患专项排查整治行动调度会议召开-天天时快讯
- 【我们的节日·端午】省消协发布端午节消费提示:绿色安全文明理性消费
- 世界焦点!【奋发有为 推动高质量发展】山西电力不断提升能源综合利用水平
- 【关注中高考】高考网上填报志愿具体时间出炉 全球热文
- 射阳科创引擎激活发展新动能
- 江苏做好耕地保护和节约用地大文章
- 【人人讲安全 个个会应急】全省重大事故隐患专项排查整治行动调度会议召开-天天时快讯
- 太阳官方告别保罗:感谢保罗为菲尼克斯所做的一切_天天报资讯
- 上海教育考试院2023年上海高考成绩查询、查分系统入口-天天观点
- 突发!全球首例死亡病例! 焦点简讯
- 焦点报道:突破蛋壳,用心灵去呼喊
- 【世界报资讯】深圳信念文化发展有限公司(关于深圳信念文化发展有限公司介绍)
- 国产高性能SUV怎么样及第二代CX-5多少钱 全球微动态
- 江苏省2023年普通高考逐分段统计表公布|讯息
- 天天快消息!座舱体验升级/行政版后排体验更佳 蔚来全新ES8静态体验
- 今日热文:俄媒:俄南部军区位于罗斯托夫总部大楼已被“瓦格纳”包围
- 贵州体育类、艺术类最低投档控制分数线划定_世界看点
- 天天关注:贵州2023年高考分数线公布!一本文科545分,一本理科459分
- 贵州省2023年高考文理科最低投档控制分数线公布 消息
- 12.DWT(小波分解)_热推荐
- 焦点热文:暗黑破坏神4正义人偶怎么获取 支线任务攻略
- 全球观焦点:【武汉成交日报】06月24日新建商品住房成交58套
- 比亚迪:悄悄的OTA,打枪的不要
- 极摩客G2—最高扩展2TB,疾速开机 告别等待!
- 普里戈任称瓦格纳已控制罗斯托夫地区包括机场在内的军用设施
- 职业生涯规划涵盖了什么(职业生涯规划 职业的内涵是什么)
- 揭阳市东之星科技发展有限公司
- 天天时讯:无法安装打印机硬件_无法安装打印机打印机处理器不存在
- @安徽高考生,6月24日出成绩啦!查询方式在这里
- 网王之千灵千寻 网王之夜千冰
- 韩国200多艘渔船海上集结 抗议日本决定将福岛核污染水排海|环球快资讯
- 美媒文章:西方经济认知全面崩塌-每日视点
- 分析人士:军工复合体持续运转 美国进一步拱火俄乌冲突_全球新要闻
- 环球短讯!本田因后视摄像头问题在美国召回120万辆汽车
- 对我国会计法律问题的思考论文
- 今日讯!dota英雄装备合成列表_dota英雄装备
- 杜兰特:欧文哈登威少影响了一代人,某些人嫉妒我加盟勇士夺冠
- 每日热讯!0241是哪里的区号_0241
- 天天观速讯丨朱棣42岁登基,当了22年皇帝,嫔妃无数,为何没有子嗣?
- 北京滑雪场哪里最好玩_北京滑雪
- 退休的我才明白:只有闺女没有儿子的家庭,养老会出现这6个问题-全球聚看点
- 江苏兴化:稻麦轮作“吨粮田”,一块田里的"碳水狂欢"
- 运能强 跑得顺 停得稳 青藏铁路将迈入动车时代_天天新视野
- 美国海岸警卫队炮舰跑到中国沿海,管得也太宽了吧? 环球实时
- 江苏无锡:“夜市经济”助力,文旅融合让乡村旅游“游”出新意
- 国产“小金翼”——派方星舰6上市在即,亲民版移动大沙发
- 柯坪塔格组_关于柯坪塔格组概略
- 焦点速看:科技洽谈对接 共谋成果转化
- 卢布辛纳阿卡晋级,萨巴爆冷出局,高芙告负,徐一璠无缘四强
- 交易员定价英国央行将把利率提高到6.25%-环球热资讯
- 美国5月生成式AI招聘岗位增加约20%,各大公司正探索新增长点 全球即时看
- 盖伦打野出装2022_盖伦打野 环球今头条
- 环球今头条!补充《让我用七千字告诉,你为什么是垃圾》
- 动态焦点:江苏扬州:“民俗游”火起来 “夜端午”亮起来
- 古代打完仗再热也不能脱盔甲,将军偏不,当场染病! 全球速看料
- 俄外长:在俄罗斯积极协助下 非盟加入G20问题将于近期得到解决
- 二手车在哪买_怎么挑选二手车_环球快播报
- 潜行者PBRmod项目的新报告
- 世界滚动:初探ETLCloud CDC零代码实现MySQL数据实时同步
- 天天消息!微视频|家国情长
- 今日最新!iphone5s电信版在2022年能用3g网吗_iphone5s电信版
- 天天观速讯丨周润发《别叫我"赌神"》豆瓣首批评论:出于情怀给3分
- 我的野蛮初恋演员表_我的野蛮初恋
- 广州花都区属国企招聘营销管理部营销岗1人|天天亮点
- 青平:遏制形式主义蔓延,减轻基层负担 热议
- 国网聊城供电公司:冒高温完成跨铁路施工 世界时讯
- 今日聚焦!中国女篮升至第一位!女篮亚洲杯实力榜更新
- 焦点热文:西班牙2023年第一季度经济上涨0.6%
- 美国将要求大货车大客车配备自动刹车系统-天天看点
- 盗窃金首饰换来“银手镯” 警方抓获一名盗窃犯罪嫌疑人
- 6·24日开始上上签必定大发横这三大生肖
- 端午“买买买”!金价走低,黄金饰品消费热度高
- 中国移动电视盒子破解软件_中国移动电视盒子破解
- 湖人选2人签3人!无交易引援佩总遭质疑 美媒晒夏联阵容成安慰
- scc宽宽做什么生意的(scc宽宽是干什么起家的)_世界速读
- 杨幂旗下的艺人有哪些全部_杨幂旗下的艺人有哪些_观点
- 甲子牛肉丸做法?
- 关注“三夏”|沧州531.1万亩小麦收获全部完成|环球微速讯
- 世界新资讯:利好英镑!机构称年底前英银进一步加息100个基点,上调利率至6%
- Win11家庭版把用户名修改为英文步骤|消息
- 斯基拉:芒特已同意曼联开出的个人条款,将签约至2028年_世界今日讯
- 6月25日放榜!广东省2023年普通高考成绩发布有关工作安排来了
- 超燃!2023年昌化农民端午传统龙舟赛激情开赛 新要闻
- 天天资讯:郑州:5月新房销售面积环比增加39.5%,销售均价环比降低17.6%
- 央媒眼中的吉林︱品粽看展赛龙舟 吉林多样过端午
- 多地端午假期首日旅游成绩单出炉,你贡献了多少?_环球讯息
- 为户外劳动者撑起“遮阳伞”
- 端午假期首日 全国铁路发送旅客1620万人次_热门
- 交通部门增加增强服务举措 确保旅客出行畅通 今日报
- 深入开展“三抓三促”行动 奋力开创现代化建设崭新局面 访泾川县委书记于宏勤 世界快播
- 【天天快播报】绝世唐门唐雅是谁后代_绝世唐门唐雅是谁
- 众望所归!文班亚马摘得NBA选秀状元,布兰登·米勒成榜眼
- 又掀降价潮?69款车型加入补贴大军!不买就亏了-百事通
- 环球滚动:以“五共”理念激活基层治理良性循环
- 【地评线】紫金e评:一枚粽子传古今,最是爱国情愫绵延悠长
- “顺手买一件”有待规范
- 机构纵论银行股下半年投资策略:价值重估行情或刚刚开启|全球百事通
- 世界今亮点!【地评线】紫金e评:守好“大国粮仓”,节粮减损是道必答题
- 热到怀疑人生!17个国家站最高气温破历史极值,山东已现43℃以上高温
- 环球微头条丨如何解决提示bandtest.dll缺失报错问题
- 全志科技:AI视觉芯片V853已在客户端实现量产
- “这趟文化寻根之旅,将抵达美好的远方” “万民祭祖·拜谒伏羲”活动侧记 当前视讯
- 天天速讯:同根伏羲 四海如一
- 当前通讯!地球信息科学与技术学什么课程及毕业薪酬岗位去向 就业前景怎么样