人脸权限下发状态(NeedManual)
1. 问题背景
人脸下发是通过API 进行权限数据下发,下发之后通过API 来查询状态; 有时会提示状态是 NeedManual , 这时需要人工介入排查;错误现象:
{
"deviceIotId": "xxxxxxx",
"faceId": "aaaaabbbbb",
"gmtCreate": 1637549159000,
"gmtModify": 1637549171000,
"groupId": "iE8Bp6GmlpmMBOq9000000",
"id": 78901822,
"isDelete": "n",
"status": "needManual",
"tenantId": "TTTTTTTT",
"transferCount": 0
}
1.1 人脸权限下发异步方式
人脸权限下发通过API (/face/paas/permission/add)下发, 下发过程中会重试三次, 但下发的状态不会在请求reponse 里面同步返回;
需要通过权限查询API (/face/paas/permission/querybyuser) 来查询下发用户的状态信息;
1.2 查询人脸权限下发状态
查询人员权限:开发API 服务
1.3 人脸权限状态:
bizType = FACE_SYNC_STATUS
当人脸开始下发时,推送toBeTransferred状态
当完成下发时,推送transferred或transferDeleted
当下发异常时,推送needManual
preStatus是变更前的状态,可能值有
toBeTransferred
deviceOffline
faceCheckTimeout
faceCheckError
facePushError
unknownError
transferTimeout
deleteTimeout
needManual
1.4 needManual 状态
人脸权限下发会把人脸的图片/信息下发到边缘端(边缘端进行人脸对比)边缘端会存储图片信息到数据库,一旦存储到数据库失败,那人脸下发的状态 status 就会设置为 needManual
needManual 状态: 字面意思就是需要人工介入
2. 问题现象
使用人员信息查询人脸权限下发状态
{
"code": 200,
"data": {
"deviceListTotal": 1,
"deviceListPageNo": 1,
"deviceListPageSize": 20,
"deviceList": [
{
"syncTime": "2021-12-08 15:24:35",
"iotId": "SxbdAAAAABBBBBCCCCT000",
"deviceNickName": "门口机_人脸识别",
"status": "needManual"
}
],
"userType": "OPEN",
"userName": "test",
"userId": "1000018",
"extInfo": "{"userName":"test","policy":"PERMISSION"}"
}
}
3. 排查方法
3.1 判断网络状态
远程SSH 物业一体机, 然后通过网络监测脚本(curl -s https://edge-box-production-management.oss-cn-shanghai.aliyuncs.com/ota/diagnosis.sh | sudo bash -s -- -d -compatible)
如果网络监测发现有ERROR,要先修复网络问题
修复网络问题后, 需要先把状态(NeedManual)reset
重新下发权限
3.2 强行reset 状态
如果网络监测正常, 只能reset 状态,然后重新下发
如果下发再次失败, 采取工单人工协助解决