TypechoJoeTheme

王子博客

用户名
密码
用户名
邮箱
搜索到 13 篇与 技术与技巧 的结果 ———
2022-09-14

使用Spring AOP实现异步文件上传

使用Spring AOP实现异步文件上传
背景相信很多系统里都有这一种场景:用户上传 Excel,后端解析 Excel 生成相应的数据,校验数据并落库。这就引发了一个问题:如果 Excel 的行非常多,或者解析非常复杂,那么解析+校验的过程就非常耗时。如果接口是一个同步的接口,则非常容易出现接口超时,进而返回的校验错误信息也无法展示给前端,这就需要从功能上解决这个问题。一般来说都是启动一个子线程去做解析工作,主线程正常返回,由子线程记录上传状态+校验结果到数据库。同时提供一个查询页面用于实时查询上传的状态和校验信息。进一步的,如果我们每一个上传的任务都写一次线程池异步+日志记录的代码就显得非常冗余。同时,非业务代码也侵入了业务代码导致代码可读性下降。从通用性的角度上讲,这种业务场景非常适合模板方法的设计模式。即设计一个抽象类,定义上传的抽象方法,同时实现记录日志的方法。例如://伪代码,省略了一些步骤 @Slf4j public abstract class AbstractUploadService<T> { public static ThreadFactory commonThreadFactor...
王子
2022-09-14

Java,技术与技巧

199 阅读
0 评论
2022年09月14日
199 阅读
0 评论
2022-09-13

轻量级虚拟机Multipass使用教程

轻量级虚拟机Multipass使用教程
当我们电脑内存不够的时候 你会怎么想?加内存??还是使用虚拟机?最近,打算在 windows电脑上安装一个虚拟机,用来学习 K8S。首先想到的是 Vmware 然后打开浏览器找了找,发现只提供付费版本。然后,开始尝试使用免费 VirtualBox,但是在安装 CentOS 的时候,貌似因为 windows版本的原因,总是报错,花费了好几天的时间,试过各种方案,最终解决无果,就放弃了。。就在老王要放弃的时候,突然在 Ubuntu 官网进行冲浪的时候,发现了一款叫 Multipass 的东西。它可以快速在电脑上快速搭建一个轻量级的虚拟机,并且相比于 Vmware 更加轻量,只需一行命令快速创建 Ubuntu 虚拟机。Multipass 是一个轻量虚拟机管理器,是由 Ubuntu 运营公司 Canonical 所推出的开源项目。运行环境支持 Linux、Windows、macOS。在不同的操作系统上,使用的是不同的虚拟化技术。在 Linux 上使用的是 KVM、Window 上使用 Hyper-V、macOS 中使用 HyperKit 以最小开销运行VM,支持在笔记本模拟小型云。同时,...
王子
2022-09-13

技术与技巧

938 阅读
0 评论
2022年09月13日
938 阅读
0 评论
2022-09-02

数字化转型,是智商税吗?

数字化转型,是智商税吗?
企业IT治理领域从来都不缺新概念,每隔几年就来一波。使得那些在企业里搞数字化落地的朋友怨声载道:这么多新概念出来,你们卖解决方案的挣钱倒是很“敏捷”,再这样下去,企业的那点家底,迟早被你们掏空了。数字化转型,该不会是收企业的智商税吧?我有许多中小型公司老板朋友,他们经常跟我抱怨:企业里的MRP2 数字还报表没对齐,中台就来了;花了几百万上“中台”,刚把“数据孤岛”打通,又说要搞“低代码”了。上数字化找死,不上等死,你就说让我怎么死吧。01 企业买软件,实际上买的是治理方法论任何的企业治理软件都只是技术手段,技术解决的是业务的问题,企业治理软件的本质就是企业治理思想的体现。所以,企业购买软件,实际上买的是治理方法论。是要解决企业运作过程中出现的问题,是要降本增效。否则excel表格就够了,要说灵活的话,哪个软件比excel更灵活?我们以ERP、中台、低代码,这几个比较有代表性的企业治理方案为例,说一说企业治理方法论的内在逻辑及演变。1、ERP解决的是,企业大规模生产管理问题ERP,是由美国Gartner公司于1990年提出的。但是ERP的起源则是要追溯到1965年,针对当时企业出现...
王子
2022-09-02

技术与技巧

146 阅读
0 评论
2022年09月02日
146 阅读
0 评论
2020-08-31

MySQL 最佳实践:一次 InnoDB 死锁 Bug 排查

MySQL 最佳实践:一次 InnoDB 死锁 Bug 排查
背景同事一个关于 InnoDB 死锁的问题。在 MySQL 5.7 可以复现这个问题,MySQL 8.0.22 却无法复现,他询问其死锁的原因。经过一系列的排查,我后来发现是 InnoDB 内部实现的一个 Bug,目前这个 Bug 已经在 8.0.18 版本进行了修复,所以也可以通过 8.0.17 vs 8.0.18 来验证这个问题。
王子
2020-08-31

技术与技巧

131 阅读
0 评论
2020年08月31日
131 阅读
0 评论