in internal/master/task_master.go [174:232]
func (m *TaskMaster) BatchUpdateTaskStatus(taskMaster taskmaster.TaskMaster, req *schedulerx.ContainerBatchReportTaskStatuesRequest) error {
for _, status := range req.GetTaskStatues() {
containerReportTaskStatusReq := &schedulerx.ContainerReportTaskStatusRequest{
JobId: proto.Int64(req.GetJobId()),
JobInstanceId: proto.Int64(req.GetJobInstanceId()),
TaskId: proto.Int64(status.GetTaskId()),
WorkerAddr: proto.String(req.GetWorkerAddr()),
WorkerId: proto.String(req.GetWorkerId()),
Status: proto.Int32(status.GetStatus()),
}
if result := status.GetResult(); result != "" {
containerReportTaskStatusReq.Result = proto.String(result)
}
if taskName := status.GetTaskName(); taskName != "" {
containerReportTaskStatusReq.TaskName = proto.String(taskName)
}
if progress := status.GetProgress(); progress != "" {
containerReportTaskStatusReq.Progress = proto.String(progress)
}
if serialNum := req.GetSerialNum(); serialNum != 0 {
containerReportTaskStatusReq.SerialNum = proto.Int64(serialNum)
}
switch taskMaster.(type) {
case *BroadcastTaskMaster:
if err := taskMaster.(*BroadcastTaskMaster).UpdateTaskStatus(containerReportTaskStatusReq); err != nil {
if err != nil {
return fmt.Errorf("BroadcastTaskMaster UpdateTaskStatus failed, err=%s ", err.Error())
}
}
case *BatchTaskMaster:
if err := taskMaster.(*BatchTaskMaster).UpdateTaskStatus(containerReportTaskStatusReq); err != nil {
if err != nil {
return fmt.Errorf("BatchTaskMaster UpdateTaskStatus failed, err=%s ", err.Error())
}
}
case *GridTaskMaster:
if err := taskMaster.(*GridTaskMaster).UpdateTaskStatus(containerReportTaskStatusReq); err != nil {
if err != nil {
return fmt.Errorf("GridTaskMaster UpdateTaskStatus failed, err=%s ", err.Error())
}
}
case *MapTaskMaster:
if err := taskMaster.(*MapTaskMaster).UpdateTaskStatus(containerReportTaskStatusReq); err != nil {
if err != nil {
return fmt.Errorf("MapTaskMaster UpdateTaskStatus failed, err=%s ", err.Error())
}
}
default:
if err := m.UpdateTaskStatus(containerReportTaskStatusReq); err != nil {
if err != nil {
return fmt.Errorf("UpdateTaskStatus failed, err=%s ", err.Error())
}
}
}
}
return nil
}