RabbitMQ延迟队列实战:订单超时自动取消
订单下单后 30 分钟没付款就自动取消,这个需求几乎每个电商项目都有。最常见的做法是起个定时任务,每分钟扫一遍数据库,把「待支付 + 创建时间超过 30 分钟」的单子关掉。订单少的时候挺好用,表里躺了几百万行之后,这条 SQL 就成了压垮数据库的常客,而且关闭总会慢上一两分钟。
强大 WebView2 + 不用写 JavaScript 的 htmx.js 「小轻快」开发桌面程序
WebView2 是越来越香了。WebView2 不但是 Win11 自带的系统组件,Win10 也已经自动推送安装。即使是少量没有安装 WebView2 的系统 —— 使用 aardio 中的 web.view 也会自动安装( 不需要写任何代码 )。
订单超时自动取消,5种方案谁才是最优解
订单15分钟不付款就取消。需求一句话,方案五花八门。今天把这些方案摆在一起比一比。上周一个做电商的朋友跟我说,他们双十一当天积压了3万多条超时订单没取消,仓库那边差点把货发出去。问题出在哪?他们用的轮询方案,定时任务扫表,高峰期根本扫不过来。订单超时取消,看起来简单,做对不容易。
美团一面:为什么 Feign 的第一次调用会很慢?
首先要了解Feign是如何进行远程调用的,这里面包括,注册中心、负载均衡、FeignClient之间的关系,微服务通过不论是eureka、nacos也好注册到服务端,Feign是靠Ribbon做负载的,而Ribbon需要拿到注册中心的服务列表,将服务进行负载缓存到本地,然后FeignClient客户端在进行调用,大概就是这么一个过程。
微服务中的超时、重试与熔断:别让一次慢调用拖垮整个系统
在单体应用中,一个方法调用失败,影响范围通常比较明确。
如何在 PC 和 Mac 上安装 Linux?
当我们使用完上一篇提到的 DistroTest 这个网站来远程安装体验测试我们所需要的 Linux 桌面发行版之后,我们就可以着手在自己的电脑上安装 Linux 系统了。
Handler 知识点梳理:Handler、Looper 以及 Message 三者之间的关系
前言Handler、Looper以及Message之间的关系,概括性来说,Looper负责的是创建一个MessageQueue对象,然后进入到一个无限循环体中不断取出消息,而这些消息都是由一个或者多个Handler进行创建处理Messagequeue 的数据结构是什么?
硬核!最全的延迟任务实现方式汇总!附代码(强烈推荐)
我们使用Quartz 来实现一个延迟任务,首先定义一个执行任务代码如下:在定义一个 JobDetail 和 Trigger 实现代码如下:最后在 SpringBoot 项目启动之后开启延迟任务,实现代码如下:以上程序的执行结果如下:2020-04-13 19:02:12.331
线程通信EventHandler使用
作者:韩茹公司:程序咖(北京)科技有限公司鸿蒙巴士专栏作家一、使用场景EventHandler开发场景EventHandler的主要功能是将InnerEvent事件或者Runnable任务投递到其他的线程进行处理,其使用的场景包括:开发者需要将InnerEvent事件投递到新的线
C# 避免长事务:一个 HTTP 调用把锁拖了 8 秒
上一篇讲的是"两个事务互相等"(死锁),这一篇讲另一种更常见的故障:只有一个事务,但它把锁抱得太久,导致所有相关请求排队。监控上看得见大量 lock wait,日志里却一条死锁都没有——排查方向完全不同。