当前位置: 首页 > ops >正文

多角色多端状态控制与锁控制

抽象场景描述

在实际业务系统中,我们经常遇到同一条数据记录被多个角色、多个客户端并发操作的情况。典型如“内容审核”、“任务状态更新”、“订单流转”等场景。

本案例抽象为以下数据模型:

id | user_id | word | review_status | review_opinion | review_user_id

这张表用于记录用户提交的内容(word),由后台审核人员进行审核处理,审核状态存储在 review_status 字段,审核意见写入 review_opinion,而 review_user_id 表示执行审核操作的管理员 ID。

很多时候可能都没有 review_user_id 这个内容,但是为了严谨和安全这个审核人也是需要加上的。

在实际业务中,存在以下典型角色:

  • 普通用户:提交或修改 word 内容,触发审核流程。
  • 审核人员(运营):基于 review_status 审核用户提交内容,可能打回或通过。
  • 系统服务或定时任务:自动更改 review_status,例如长时间未审核的内容自动打回。

🎯 具体场景举例

  1. 用户 A 提交文案 word,此时 review_status = 0(待审核)。
  2. 同时运营 B 正在审核该内容,正准备将状态置为 2(已通过)。
  3. 此时,用户 A 发现错误,在运营未审核前修改了内容,review_status 被用户接口自动回退成 0(待审核),运营端页面未刷新,仍提交 2(已通过)。
  4. 结果:状态冲突,最终保存结果不一致,导致运营看到通过,用户看到未通过,系统状态混乱。

状态流转:

[至少有 5 个内容,但是 0和 1 可以在某些场景 共用】

review_status状态含义备注说明
-1草稿用户刚填写内容,尚未提交审核
0待审核用户点击“提交审核”按钮后进入审核流程
1审核中(可选)审核人员点进详情页或锁定审核任务
2审核通过内容通过
3审核不通过 / 打回审核失败,需要用户修改后重新提交
  1. 用户 A 编辑文案 word,初始为 review_status = -
http://www.xdnf.cn/news/8787.html

相关文章:

  • Java Web
  • 一周学会Pandas2之Python数据处理与分析-Pandas2数据合并与对比-df.combine_first():填充合并
  • 李白、杜甫和白居易三者之间是否存在交集?
  • 6.4.2_1最短路径问题_BFS算法
  • 简单了解下Nacos
  • 【C语言指南】二维数组:概念、初始化与遍历
  • 5GC网络中的QoS Flow级QoS控制
  • Arduino Uno 热敏传感器实验
  • 防火墙高可用(HA)主备验证实验(eNSP)
  • 构造题(Constructive Problem)
  • ROS云课三分钟-阿克曼车式移动机器人倒车入库出库测试实验
  • python | vscode | 使用uv快速创建虚拟环境(实现一个项目一个虚拟环境,方便环境管理)
  • ADS学习笔记(三) 瞬态仿真
  • 【每天一个知识点】计算思维
  • java基础(面向对象高级部分)
  • [学习]浅谈C++异常处理(代码示例)
  • 2025.5.22 Axure 基础与线框图制作学习笔记
  • Linux中的文件系统和软硬连接
  • OpenGL环境配置
  • GAMES104 Piccolo引擎搭建配置
  • 【IPMV】图像处理与机器视觉:Lec12 Blob Detector 斑点检测
  • 进程通信-内存共享
  • 使用Java制作贪吃蛇小游戏
  • 历年福州大学保研上机真题
  • Java字符编码转换:从UTF-8到GBK的实现原理与实践
  • 【多线程】Java 实现方式及其优缺点
  • 智能语音通信新标杆——A-29P神经网络AI降噪回音消除模块深度解析
  • 【AI Study】第三天,Python基础 - 同NumPy类似的类库
  • Go语言中常见的6个设计模式
  • 2025-5-22Vue3快速上手