印象深刻的bug汇总(持续更新)

请求异步问题(20220627)

问题表象

每次切换任务巡查时,有5%左右概率崩溃

根本原因

正确时网络请求顺序:

  1. 前端请求/api/affair/inspection/mGetInspectionTask
  2. 前端请求/api/affair/inspection/updateInspectionTask
  3. /api/affair/inspection/updateInspectionTask修改数据库status=2
  4. /api/affair/inspection/mGetInspectionTask到达数据库拿到status=2
  5. /api/affair/inspection/updateInspectionTask返回前端结果,选中该任务巡查
  6. /api/affair/inspection/mGetInspectionTask返回status=2的结果给前端,状态正确

崩溃请求顺序:

  1. 前端请求/api/affair/inspection/mGetInspectionTask
  2. 前端请求/api/affair/inspection/updateInspectionTask
  3. /api/affair/inspection/mGetInspectionTask到达数据库拿到status=1
  4. /api/affair/inspection/updateInspectionTask修改数据库status=2
  5. /api/affair/inspection/updateInspectionTask返回前端结果,选中该任务巡查
  6. /api/affair/inspection/mGetInspectionTask返回status=1的结果给前端,导致不可巡查

解决方案

mGetInspectionTask巡查任务时,如果访问数据库的时间戳小于修改数据库的时间戳,那么舍弃该状态

你可能感兴趣的:(质量保障,bug,前端)