一 锁的机制
加锁是为了避免数据不一致,加锁后只有一个人可以编辑。避免两个人同时编辑,从而导致内容互相覆盖而不知道。加锁也能避免一些异常问题的出现。
1 没加锁时的审核
时间 | 商家 | 审核人员 |
12:00 | 打开商家编辑界面,并修改商品标题 | |
12:05 | 打开审核界面,看到修改后的新商品的标题 | |
12:10 | 商家修改了商品描述,并保存 | |
12:15 | 单击审核通过,但并不知道已经修改了商品描述 |
2 加锁时的审核
时间 | 商家 | 审核人员 |
12:00 | 打开商家编辑界面,并修改商品标题 | |
12:05 | 打开审核界面,获取该商品的锁失败,系统提示“商家正在编辑” | |
12:10 | 商家修改了商品描述并保存,关掉当前界面,同时锁被释放 | |
12:15 | 打开审核界面,成功获取到该商品的锁。审核人员发现商品描述违规,单击“审核拒绝”。 |
比较上面两个表,我们就知道了锁的作用。
再补充一下,程序加锁需要触发条件,该条件可以是任意一个动作。比如,商家单击“编辑”按钮,审核人员单击“审核”按钮。总之,只要单击了某个按钮或进行了某个操作,就能触发程序加锁。
二 研发人员如何实现活动的状态
针对一个商品对象,可以有若干个状态,研发可以定义一个变量,用这个变量代表若干状态。当然也可以定义多个变量,通过变量组合来实现多个状态,下面是一种方案。
1 上下架状态
状态名 | 状态值 |
下架 | 0 |
上架 | 1 |
2 审核状态
状态名 | 状态值 |
未审核 | 0 |
已审核通过 | 1 |
已审核拒绝 | 2 |