还在深夜加班改Bug?雷军都点赞的防重提方案来了!,“那天凌晨2点,我因
分享于 点击 22632 次 点评:101
还在深夜加班改Bug?雷军都点赞的防重提方案来了!,“那天凌晨2点,我因
前言
这是一个希望让每一位程序员按时下班的防止重复提交开源利器。
“那天凌晨2点,我因为重复提交漏洞被搞得半夜加班解决问题。
现在,我只用一行代码 就解决了这个问题——
这就是 resubmit ,一个普通程序员送给所有同行的防崩盘保险。”
—— 一位不愿意透露姓名的 996 程序员
防重复提交
实现方式对比
实现方式对比
// 方案1:手动if校验(新手最爱)
if(!cache.contains(requestId)) { // 漏判并发问题 → 资损事故
doBusiness();
}
// 方案2:AOP切面(老鸟的选择)
@Around("execution(* com..*Controller.*(..))") // 几十行代码+调试验证 → 加班秃头
public Object checkRepeat(ProceedingJoinPoint joinPoint) {
// 复杂参数解析...
}
// 方案3:resubmit(今天起换种活法)
@Resubmit(5000) // ◾ 1行注解 → 下班约会
public void business(String id) {
// 安心写核心逻辑
}
参数理性美:精准到毫秒的防御方程
可以结合自己的实际业务,调整阈值。
防御场景 | resubmit方案 | 传统方案 |
---|---|---|
支付防连点 | @Resubmit(3000) |
前端按钮禁用+后端校验 |
表单防重复提交 | @Resubmit(10000) |
Token机制+Session管理 |
秒杀防超卖 | @Resubmit(0) |
Redis分布式锁 |
resubmit 适合 99% 中小项目,无缝整合 spring,纵享丝滑。
当然也支持分布式集群,支持灵活拓展。
用户点评