对于分布式锁过期时判断是否执行任务问题

来源:14-1 Spring Schedule+Redis分布式锁构建分布式任务调度概述

慕丝5025019

2019-07-08

当分布式锁已经判断为过期时,要执行iOrderService.closeOrder需要判断(lockValue1==lockValue2 || lockValue2==null)这个判断条件中的lockValue1 == lockValue2是否是没有必要的,其实就算被别的线程修改过这个值也没事,这样做的目的是不是为了防止这个锁被别的进程占用,我想了很久米想明白老师能讲一下这个lockValue1 == lockValue2的作用是什么吗?我觉得如果是判断是否被别的进程修改过,那就没有必要加这个,被别的进程修改过那也可以执行关单操作啊

写回答

1回答

geelylucky

2019-07-08

同学,要保证同一时刻有且只能有一个进程在执行关单操作,如果多台服务器在跑同一个定时任务的话,肯定是会出问题的lockValue1 == lockValue2就是为了保证有且只有一个服务器执行关单操作。

0
0

Java企业级电商项目架构 Tomcat集群与Redis分布式

Tomcat集群+Redis分布式+代码重构+源码原理解析

2685 学习 · 947 问题

查看课程