找回密码
 立即注册
首页 资源区 代码 还在深夜加班改Bug?雷军都点赞的防重提方案来了! ...

还在深夜加班改Bug?雷军都点赞的防重提方案来了!

荆邦 3 天前
前言

这是一个希望让每一位程序员按时下班的防止重复提交开源利器。
  1. “那天凌晨2点,我因为重复提交漏洞被搞得半夜加班解决问题。  
  2. 现在,我只用一行代码 就解决了这个问题——  
  3. 这就是 resubmit ,一个普通程序员送给所有同行的防崩盘保险。”  
复制代码
—— 一位不愿意透露姓名的 996 程序员
防重复提交

实现方式对比

实现方式对比
  1. // 方案1:手动if校验(新手最爱)
  2. if(!cache.contains(requestId)) { // 漏判并发问题 → 资损事故
  3.     doBusiness();
  4. }
  5. // 方案2:AOP切面(老鸟的选择)
  6. @Around("execution(* com..*Controller.*(..))") // 几十行代码+调试验证 → 加班秃头
  7. public Object checkRepeat(ProceedingJoinPoint joinPoint) {
  8.     // 复杂参数解析...
  9. }
  10. // 方案3:resubmit(今天起换种活法)
  11. @Resubmit(5000) // ◾ 1行注解 → 下班约会
  12. public void business(String id) {
  13.     // 安心写核心逻辑
  14. }
复制代码
参数理性美:精准到毫秒的防御方程

可以结合自己的实际业务,调整阈值。
防御场景resubmit方案传统方案支付防连点@Resubmit(3000)前端按钮禁用+后端校验表单防重复提交@Resubmit(10000)Token机制+Session管理秒杀防超卖@Resubmit(0)Redis分布式锁resubmit 适合 99% 中小项目,无缝整合 spring,纵享丝滑。
当然也支持分布式集群,支持灵活拓展。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册