标记任务完成
(taskId int64, taskVersion int64, taskErr error)
| 359 | |
| 360 | // 标记任务完成 |
| 361 | func (this *Node) finishTask(taskId int64, taskVersion int64, taskErr error) (success bool) { |
| 362 | if taskId <= 0 { |
| 363 | return true |
| 364 | } |
| 365 | |
| 366 | rpcClient, err := rpc.SharedRPC() |
| 367 | if err != nil { |
| 368 | remotelogs.Debug("NODE", "create rpc client failed: "+err.Error()) |
| 369 | return false |
| 370 | } |
| 371 | |
| 372 | var isOk = taskErr == nil |
| 373 | if isOk && taskVersion > this.lastTaskVersion { |
| 374 | this.lastTaskVersion = taskVersion |
| 375 | } |
| 376 | |
| 377 | var errMsg = "" |
| 378 | if taskErr != nil { |
| 379 | errMsg = taskErr.Error() |
| 380 | } |
| 381 | |
| 382 | _, err = rpcClient.NodeTaskRPC.ReportNodeTaskDone(rpcClient.Context(), &pb.ReportNodeTaskDoneRequest{ |
| 383 | NodeTaskId: taskId, |
| 384 | IsOk: isOk, |
| 385 | Error: errMsg, |
| 386 | }) |
| 387 | success = err == nil |
| 388 | |
| 389 | if err != nil { |
| 390 | // 连接错误不需要上报到服务中心 |
| 391 | if rpc.IsConnError(err) { |
| 392 | remotelogs.Debug("NODE", "report task done failed: "+err.Error()) |
| 393 | } else { |
| 394 | remotelogs.Error("NODE", "report task done failed: "+err.Error()) |
| 395 | } |
| 396 | } |
| 397 | |
| 398 | return success |
| 399 | } |