diff --git a/models/cloudbrain.go b/models/cloudbrain.go index 11368f076..87a2ebd2c 100755 --- a/models/cloudbrain.go +++ b/models/cloudbrain.go @@ -102,7 +102,7 @@ type Cloudbrain struct { ContainerIp string CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"` UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"` - Duration int64 + Duration int64 //运行时长 单位秒 TrainJobDuration string Image string //镜像名称 GpuQueue string //GPU类型即GPU队列 @@ -1395,7 +1395,7 @@ func UpdateTrainJobVersion(job *Cloudbrain) error { func updateJobTrainVersion(e Engine, job *Cloudbrain) error { var sess *xorm.Session sess = e.Where("job_id = ? AND version_name=?", job.JobID, job.VersionName) - _, err := sess.Cols("status", "train_job_duration", "start_time", "end_time").Update(job) + _, err := sess.Cols("status", "train_job_duration", "duration", "start_time", "end_time").Update(job) return err } @@ -1475,7 +1475,7 @@ func UpdateInferenceJob(job *Cloudbrain) error { func updateInferenceJob(e Engine, job *Cloudbrain) error { var sess *xorm.Session sess = e.Where("job_id = ?", job.JobID) - _, err := sess.Cols("status", "train_job_duration").Update(job) + _, err := sess.Cols("status", "train_job_duration", "duration", "start_time", "end_time").Update(job) return err } func RestartCloudbrain(old *Cloudbrain, new *Cloudbrain) (err error) { diff --git a/routers/api/v1/repo/modelarts.go b/routers/api/v1/repo/modelarts.go index 618f6c48d..28756699c 100755 --- a/routers/api/v1/repo/modelarts.go +++ b/routers/api/v1/repo/modelarts.go @@ -144,11 +144,11 @@ func GetModelArtsTrainJobVersion(ctx *context.APIContext) { job.StartTime = timeutil.TimeStamp(result.StartTime / 1000) } job.Status = modelarts.TransTrainJobStatus(result.IntStatus) - job.Duration = result.Duration + job.Duration = result.Duration / 1000 job.TrainJobDuration = result.TrainJobDuration if result.Duration != 0 { - job.TrainJobDuration = util.AddZero(result.Duration/3600000) + ":" + util.AddZero(result.Duration%3600000/60000) + ":" + util.AddZero(result.Duration%60000/1000) + job.TrainJobDuration = util.AddZero(result.Duration/3600) + ":" + util.AddZero(result.Duration%3600/60) + ":" + util.AddZero(result.Duration%60) } else { job.TrainJobDuration = "00:00:00" @@ -379,17 +379,22 @@ func GetModelArtsInferenceJob(ctx *context.APIContext) { ctx.NotFound(err) return } - + if job.StartTime == 0 { + job.StartTime = timeutil.TimeStamp(result.StartTime / 1000) + } job.Status = modelarts.TransTrainJobStatus(result.IntStatus) - job.Duration = result.Duration + job.Duration = result.Duration / 1000 job.TrainJobDuration = result.TrainJobDuration if result.Duration != 0 { - job.TrainJobDuration = util.AddZero(result.Duration/3600000) + ":" + util.AddZero(result.Duration%3600000/60000) + ":" + util.AddZero(result.Duration%60000/1000) + job.TrainJobDuration = util.AddZero(result.Duration/3600) + ":" + util.AddZero(result.Duration%3600/60) + ":" + util.AddZero(result.Duration%60) } else { job.TrainJobDuration = "00:00:00" } + if models.IsTrainJobTerminal(job.Status) { + job.EndTime = job.StartTime.Add(job.Duration / 1000) + } err = models.UpdateInferenceJob(job) if err != nil { diff --git a/routers/repo/cloudbrain.go b/routers/repo/cloudbrain.go index dae8506f0..7f907dd52 100755 --- a/routers/repo/cloudbrain.go +++ b/routers/repo/cloudbrain.go @@ -1030,14 +1030,14 @@ func SyncCloudbrainStatus() { if result != nil { task.Status = modelarts.TransTrainJobStatus(result.IntStatus) - task.Duration = result.Duration + task.Duration = result.Duration / 1000 task.TrainJobDuration = result.TrainJobDuration if task.StartTime == 0 { task.StartTime = timeutil.TimeStamp(result.StartTime / 1000) } if result.Duration != 0 { - task.TrainJobDuration = util.AddZero(result.Duration/3600000) + ":" + util.AddZero(result.Duration%3600000/60000) + ":" + util.AddZero(result.Duration%60000/1000) + task.TrainJobDuration = util.AddZero(result.Duration/3600) + ":" + util.AddZero(result.Duration%3600/60) + ":" + util.AddZero(result.Duration%60) } else { task.TrainJobDuration = "00:00:00"