diff --git a/models/cloudbrain.go b/models/cloudbrain.go index 480350c8d..cb7fda7a0 100755 --- a/models/cloudbrain.go +++ b/models/cloudbrain.go @@ -1559,6 +1559,10 @@ func GetStoppedJobWithNoDurationJob() ([]*Cloudbrain, error) { Limit(100). Find(&cloudbrains) } +func GetStoppedJobWithNoStartTimeEndTime() ([]*Cloudbrain, error) { + cloudbrains := make([]*Cloudbrain, 0) + return cloudbrains, x.SQL("select * from cloudbrain where status in (?,?,?,?,?,?,?) and (start_time is null or end_time is null) limit 100", ModelArtsTrainJobCompleted, ModelArtsTrainJobFailed, ModelArtsTrainJobKilled, ModelArtsStopped, JobStopped, JobFailed, JobSucceeded).Find(&cloudbrains) +} func GetCloudbrainCountByUserID(userID int64, jobType string) (int, error) { count, err := x.In("status", JobWaiting, JobRunning).And("job_type = ? and user_id = ? and type = ?", jobType, userID, TypeCloudBrainOne).Count(new(Cloudbrain)) diff --git a/routers/repo/cloudbrain.go b/routers/repo/cloudbrain.go index b3b07f352..9929992e2 100755 --- a/routers/repo/cloudbrain.go +++ b/routers/repo/cloudbrain.go @@ -1485,11 +1485,19 @@ func SyncCloudbrainStatus() { } func HandleTaskWithNoDuration(ctx *context.Context) { + mode := ctx.Query("mode") log.Info("HandleTaskWithNoDuration start") count := 0 start := time.Now().Unix() for { - cloudBrains, err := models.GetStoppedJobWithNoDurationJob() + var cloudBrains []*models.Cloudbrain + var err error + if mode == "1" { + cloudBrains, err = models.GetStoppedJobWithNoStartTimeEndTime() + } else { + cloudBrains, err = models.GetStoppedJobWithNoDurationJob() + } + if err != nil { log.Error("HandleTaskWithNoTrainJobDuration failed:", err.Error()) break