函数式开发接口( Consumer、Function)在实际开发中的应用场景

news2024/11/8 14:22:36

之前有个扫码下载文件需求,由于要同时进行记录下载人的记录。一开始用的是异步进行日志记录。发现有的用户扫码下载了一次文件,日志记录了三条。这种很容易联想到是因为网络抖动造成的。

问题代码

由于日志记录是异步的,文件下载需要时间。同时发 3 个请求过来,日志会进行记录三次,而文件只会下载一个。

 //保存日志
 tabDzzzhzService.saveDownLog();
 //下载文件
 shortLinkGenerator.downFile();

优化后的代码

利用 Consumer 函数解决。当文件下载完成后,触发我们的回掉函数,进行日志记录。从而解决问题。
在这里插入图片描述
在这里插入图片描述

Consumer、Function区别,前者不带返回值,后者带返回值

其他应用场景

先查缓存,有数据返回缓存值,没数据查 db,返回 db 中的数据。之前有个系统很多地方用到了缓存。每次都重复上面的步骤很烦,于是乎自己写了个工具类封装了一下。
在这里插入图片描述

源码

Consumer、Function接口在很多框架的源码中也应用甚广,就不一一列举了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1819205.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

场外期权能不能开户?场外期权在哪里开?

今天带你了解场外期权能不能开户?场外期权在哪里开?近年来,场外期权交易在金融市场上逐渐盛行起来。有许多人对于场外期权的开户问题感到困惑。 场外期权能不能开户? 资质要求: 个人投资者需要具备一定的金融知识和投…

Excel根据身份证号提取信息

概览 本篇文章主要对根据身份证号码提取出生年月日、年龄、性别、退休年龄这三项进行讲解。 一. 提取出生年月日 公式:TEXT(MID(B2,7,8),“0000-00-00”) MID(B2,7,8):表示从单元格 B2 中的字符串(这里是身份证号)&#xff0c…

SolarONE:新一代开放灵活高效的车载网络仿真测试软件

在当前汽车设计中,车载总线系统扮演着至关重要的角色,它连接了车辆内部的各种电子控制单元(ECU),实现了数据的传输与交换。为了更好地理解和优化车载总线系统,软件工具的使用变得至关重要。 本文将介绍一款…

二十三、生成帮助文档

二十一、Java工具类的创建 二十二、Jar包制作及使用 这一篇开始学习如何生成帮助文档。为什么要学习生成帮助文档? 1、工具类已经制作好了,Java工具类的创建的类是一个.java文件,编译后成.class文件看不懂,所以需要对应的帮助文档…

光伏电站阵列式冲击波声压光伏驱鸟器

光伏电站内鸟群的聚集可不是一件好事,鸟类排泄物,因其粘度大、具有腐蚀性的特点,一旦堆积在太阳能板上,会严重影响光伏电站的发电效率。长期积累的鸟粪不仅难以清洗,还可能引发组件的热斑效应,严重时甚至可…

大模型推理优化

什么是大模型推理 **大模型推理其实就是大模型如何输出,怎么输出,输出什么的过程。**在人工智能的基础模型下,各种推理任务涵盖了多个领域,包括常识推理、数学推理、逻辑推理、因果推理、视觉推理、听觉推理、多模态推理和代理推…

【SpringBoot+Vue】后端代码学习记录——登录功能开发

参考资料 https://www.cnblogs.com/three-fighter/p/14332288.html 零、前端开发 略。之前有过。 一、后端开发 1、统一结果封装 创建了一个 Result 类,用于异步统一返回的结果封装。一般来说,结果里面有几个要素必要的 是否成功,可用 c…

哪个牌子的儿童护眼灯好?五款平价护眼台灯推荐

护眼台灯在近年来成为家长和长时间使用电子设备人群关注的家电/学生产品。对于家中有孩子或经常面对电子屏幕的人士来说,很多人可能已经对这类产品有所了解并进行了购买。然而,部分家长对护眼台灯的认识还不够深入,因此尚未为孩子选择一款合适…

怎么写自动注册苹果ID的工具,会用到哪些源代码?

在数字化时代,苹果ID成为了连接苹果生态系统中各项服务的关键桥梁,然而,手动注册苹果ID的过程往往繁琐且耗时,因此,开发一款能够自动注册苹果ID的工具成为了许多开发者的追求。 本文将科普如何编写这样的工具&#xf…

每日一练:攻防世界:Misc文件类型

给了一个txt文本文件,因为题目是文件类型,我先开始一直在想关于文件头的知识。 这串数据看着像十六进制数据,我就直接把他转ASCII了 反转一下就是base64,因为base64没有_,所以去掉46ESAB_,base64解码Hex试…

【游戏】一款纯web集前后端为一体的沙盒游戏框架介绍

1.biomes-game是什么? 一款基于MIT协议开源沙盒 MMORPG。游戏中可建造、采集、玩迷你游戏等等,所有操作均可通过浏览器完成。它主要使用React框架,前后端用 Typescript 和 WebAssembly 编写。 2.如何本地体验? 配置:…

简约不简单,建筑装饰演绎现代美学

走在城市的大街小巷,你是否曾被那些独特而精美的建筑装饰所吸引?每一栋建筑都像是艺术家的杰作,通过精美的装饰诉说着它的故事。 我们的建筑装饰,不仅注重外在的美观,更追求内在的品质。从古典的雕花到现代的简约线条&…

干货下载 |《数据治理:数据中台建设与能力提升策略》

在当今这个信息爆炸的时代,数据已经成为企业最宝贵的资产之一。数据不仅能帮助企业洞察市场趋势,还能优化业务流程,提升运营效率,进而在激烈的市场竞争中占据优势地位。然而,如何有效地管理和利用这些数据,…

Qt篇——-1: error: fatal error: no input files问题解决

有时在pro或pri中引用的文件被删除或重命名后,会导致pro或pri文件中自动出现两个连续的//,这将导致我们编译时提示:-1: error: fatal error: no input files。 这是因为qmake 语法里每增加一个源文件或一个配置用一个斜杠结束&#x…

高速直线导轨驱动与控制,精准稳定的运动核心元件

直线导轨在工业生产中,精度和稳定性是至关重要的。而在各种机械设备中,高精度直线导轨是提高设备运动控制精度和平稳性的核心部件,当我们考虑高速运动时,直线导轨的精度和稳定性是非常重要的因素。 直线导轨系统中如何确保高速运动…

计算机网络 —— 运输层(四次挥手)

计算机网络 —— 运输层(四次挥手) 四次挥手客户端到服务器的关闭第一次挥手第二次挥手 服务器到客户端连接的关闭第三次挥手第四次挥手 等待时间的必要性 我们今天来看TCP协议的四次挥手: 四次挥手 TCP的四次挥手(Four-Way Han…

TikTok网红营销指南 | 怎么找到TikTok网红并进行合作?

如果你打算在tiktok上进行营销,忽略与tiktok网红合作无异于错失良机,时尚博主Sophia仅用一条30秒的视频展示了自己从一家新兴品牌购买的连衣裙,视频迅速获得了数百万的点赞和评论,也让该品牌的销量翻了好几倍。 这种与网红合作的策…

TIM—通用定时器高级定时器

通用/高级定时器的功能 在基本定时器功能的基础上新增功能: 通用定时器有4个独立通道,且每个通道都可以用于下面功能。 (1)输入捕获:测量输入信号的周期和占空比等。 (2)输出比较:产…

在亚马逊云上部署WordPress:一个完整的LAMP环境安装教程

什么是LAMP LAMP是一个流行的开源软件堆栈,用于网站和网络应用程序的开发和部署。LAMP是几个主要组件的首字母缩写,包括: Linux:操作系统层,LAMP通常部署在Linux操作系统上,但它也可以使用其他类似Unix的…

【软件测试】遇到bug怎么分析,这篇文章值得一看

为什么定位问题如此重要? 可以明确一个问题是不是真的“bug” 很多时候,我们找到了问题的原因,结果发现这根本不是bug。原因明确,误报就会降低 多个系统交互,可以明确指出是哪个系统的缺陷,防止“踢皮球…