diff --git a/models/cloudbrain.go b/models/cloudbrain.go index 5be35ea0a..47d09d9ce 100755 --- a/models/cloudbrain.go +++ b/models/cloudbrain.go @@ -101,7 +101,8 @@ const ( ModelArtsTrainJobCheckRunningCompleted ModelArtsJobStatus = "CHECK_RUNNING_COMPLETED" //审核作业已经完成 ModelArtsTrainJobCheckFailed ModelArtsJobStatus = "CHECK_FAILED" //审核作业失败 - DURATION_STR_ZERO = "00:00:00" + DURATION_STR_ZERO = "00:00:00" + CloudbrainKeyDuration = 24 * time.Hour //grampus GrampusStatusPending = "pending" diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini index f6ff5d96f..26a1538d2 100755 --- a/options/locale/locale_en-US.ini +++ b/options/locale/locale_en-US.ini @@ -1092,6 +1092,7 @@ cloudbrain_operate = Operate cloudbrain_status_createtime = Status/Createtime cloudbrain_status_runtime = Running Time cloudbrain_jobname_err=Name must start with a lowercase letter or number,can include lowercase letter,number,_ and -,can not end with _, and can be up to 36 characters long. +cloudbrain_samejob_err=You have created a task with the same name, the system is processing it, please wait a minute. cloudbrain_bootfile_err=The bootfile does not exist in the repository cloudbrain_query_fail=Failed to query cloudbrain information. cloudbrain.mirror_tag = Mirror Tag diff --git a/options/locale/locale_zh-CN.ini b/options/locale/locale_zh-CN.ini index 17ec29319..636697cb1 100755 --- a/options/locale/locale_zh-CN.ini +++ b/options/locale/locale_zh-CN.ini @@ -1096,6 +1096,7 @@ cloudbrain_operate=操作 cloudbrain_status_createtime=状态/创建时间 cloudbrain_status_runtime = 运行时长 cloudbrain_jobname_err=只能以小写字母或数字开头且只包含小写字母、数字、_和-,不能以_结尾,最长36个字符。 +cloudbrain_samejob_err=您已经创建了同名任务,系统处理中,请您稍候。 cloudbrain_bootfile_err=仓库中不存在启动文件 cloudbrain_query_fail=查询云脑任务失败。 cloudbrain.mirror_tag = 镜像标签 diff --git a/routers/repo/cloudbrain.go b/routers/repo/cloudbrain.go index 58aabd129..02a1f6a2a 100755 --- a/routers/repo/cloudbrain.go +++ b/routers/repo/cloudbrain.go @@ -250,11 +250,11 @@ func CloudBrainCreate(ctx *context.Context, form auth.CreateCloudBrainForm) { } lock := redis_lock.NewDistributeLock(redis_key.CloudbrainBindingJobNameKey(fmt.Sprint(repo.ID), jobType, displayJobName)) - isOk := lock.Lock(60 * time.Second) + isOk := lock.Lock(models.CloudbrainKeyDuration) if !isOk { log.Error("The task have been processed", ctx.Data["MsgID"]) cloudBrainNewDataPrepare(ctx) - ctx.RenderWithErr("The task have been processed, please wait a minute", tpl, &form) + ctx.RenderWithErr(ctx.Tr("repo.cloudbrain_samejob_err"), tpl, &form) return } defer lock.UnLock() @@ -438,11 +438,11 @@ func CloudBrainInferenceJobCreate(ctx *context.Context, form auth.CreateCloudBra tpl := tplCloudBrainInferenceJobNew lock := redis_lock.NewDistributeLock(redis_key.CloudbrainBindingJobNameKey(fmt.Sprint(repo.ID), jobType, displayJobName)) - isOk := lock.Lock(60 * time.Second) + isOk := lock.Lock(models.CloudbrainKeyDuration) if !isOk { log.Error("The task have been processed", ctx.Data["MsgID"]) cloudBrainNewDataPrepare(ctx) - ctx.RenderWithErr("The task have been processed, please wait a minute", tpl, &form) + ctx.RenderWithErr(ctx.Tr("repo.cloudbrain_samejob_err"), tpl, &form) return } defer lock.UnLock() @@ -2319,11 +2319,11 @@ func BenchMarkAlgorithmCreate(ctx *context.Context, form auth.CreateCloudBrainFo ctx.Data["benchmark_child_types_id_hidden"] = benchmarkChildTypeID lock := redis_lock.NewDistributeLock(redis_key.CloudbrainBindingJobNameKey(fmt.Sprint(repo.ID), form.JobType, displayJobName)) - isOk := lock.Lock(60 * time.Second) + isOk := lock.Lock(models.CloudbrainKeyDuration) if !isOk { log.Error("The task have been processed", ctx.Data["MsgID"]) cloudBrainNewDataPrepare(ctx) - ctx.RenderWithErr("The task have been processed, please wait a minute", tplCloudBrainBenchmarkNew, &form) + ctx.RenderWithErr(ctx.Tr("repo.cloudbrain_samejob_err"), tplCloudBrainBenchmarkNew, &form) return } defer lock.UnLock() @@ -2517,11 +2517,11 @@ func ModelBenchmarkCreate(ctx *context.Context, form auth.CreateCloudBrainForm) command := cloudbrain.GetCloudbrainDebugCommand() lock := redis_lock.NewDistributeLock(redis_key.CloudbrainBindingJobNameKey(fmt.Sprint(repo.ID), jobType, displayJobName)) - isOk := lock.Lock(60 * time.Second) + isOk := lock.Lock(models.CloudbrainKeyDuration) if !isOk { log.Error("The task have been processed", ctx.Data["MsgID"]) cloudBrainNewDataPrepare(ctx) - ctx.RenderWithErr("The task have been processed, please wait a minute", tpl, &form) + ctx.RenderWithErr(ctx.Tr("repo.cloudbrain_samejob_err"), tpl, &form) return } defer lock.UnLock() diff --git a/routers/repo/grampus.go b/routers/repo/grampus.go index c305889b8..05a89cc49 100755 --- a/routers/repo/grampus.go +++ b/routers/repo/grampus.go @@ -212,11 +212,11 @@ func GrampusTrainJobGpuCreate(ctx *context.Context, form auth.CreateGrampusTrain image := strings.TrimSpace(form.Image) lock := redis_lock.NewDistributeLock(redis_key.CloudbrainBindingJobNameKey(fmt.Sprint(repo.ID), string(models.JobTypeTrain), displayJobName)) - isOk := lock.Lock(60 * time.Second) + isOk := lock.Lock(models.CloudbrainKeyDuration) if !isOk { log.Error("The task have been processed", ctx.Data["MsgID"]) grampusTrainJobNewDataPrepare(ctx, grampus.ProcessorTypeGPU) - ctx.RenderWithErr("The task have been processed, please wait a minute", tplGrampusTrainJobGPUNew, &form) + ctx.RenderWithErr(ctx.Tr("repo.cloudbrain_samejob_err"), tplGrampusTrainJobGPUNew, &form) return } defer lock.UnLock() @@ -414,11 +414,11 @@ func GrampusTrainJobNpuCreate(ctx *context.Context, form auth.CreateGrampusTrain engineName := form.EngineName lock := redis_lock.NewDistributeLock(redis_key.CloudbrainBindingJobNameKey(fmt.Sprint(repo.ID), string(models.JobTypeTrain), displayJobName)) - isOk := lock.Lock(60 * time.Second) + isOk := lock.Lock(models.CloudbrainKeyDuration) if !isOk { log.Error("The task have been processed", ctx.Data["MsgID"]) grampusTrainJobNewDataPrepare(ctx, grampus.ProcessorTypeNPU) - ctx.RenderWithErr("The task have been processed, please wait a minute", tplGrampusTrainJobNPUNew, &form) + ctx.RenderWithErr(ctx.Tr("repo.cloudbrain_samejob_err"), tplGrampusTrainJobNPUNew, &form) return } defer lock.UnLock() diff --git a/routers/repo/modelarts.go b/routers/repo/modelarts.go index daac6b160..f7f464324 100755 --- a/routers/repo/modelarts.go +++ b/routers/repo/modelarts.go @@ -2,7 +2,6 @@ package repo import ( "archive/zip" - "code.gitea.io/gitea/modules/modelarts_cd" "encoding/json" "errors" "fmt" @@ -16,6 +15,8 @@ import ( "time" "unicode/utf8" + "code.gitea.io/gitea/modules/modelarts_cd" + "code.gitea.io/gitea/models" "code.gitea.io/gitea/modules/auth" "code.gitea.io/gitea/modules/base" @@ -154,11 +155,11 @@ func Notebook2Create(ctx *context.Context, form auth.CreateModelArtsNotebookForm repo := ctx.Repo.Repository lock := redis_lock.NewDistributeLock(redis_key.CloudbrainBindingJobNameKey(fmt.Sprint(repo.ID), string(models.JobTypeDebug), displayJobName)) - isOk := lock.Lock(60 * time.Second) + isOk := lock.Lock(models.CloudbrainKeyDuration) if !isOk { log.Error("The task have been processed", ctx.Data["MsgID"]) notebookNewDataPrepare(ctx) - ctx.RenderWithErr("The task have been processed, please wait a minute", tplModelArtsNotebookNew, &form) + ctx.RenderWithErr(ctx.Tr("repo.cloudbrain_samejob_err"), tplModelArtsNotebookNew, &form) return } defer lock.UnLock() @@ -1094,11 +1095,11 @@ func TrainJobCreate(ctx *context.Context, form auth.CreateModelArtsTrainJobForm) } lock := redis_lock.NewDistributeLock(redis_key.CloudbrainBindingJobNameKey(fmt.Sprint(repo.ID), string(models.JobTypeTrain), displayJobName)) - isOk := lock.Lock(60 * time.Second) + isOk := lock.Lock(models.CloudbrainKeyDuration) if !isOk { log.Error("The task have been processed", ctx.Data["MsgID"]) trainJobErrorNewDataPrepare(ctx, form) - ctx.RenderWithErr("The task have been processed, please wait a minute", tplModelArtsTrainJobNew, &form) + ctx.RenderWithErr(ctx.Tr("repo.cloudbrain_samejob_err"), tplModelArtsTrainJobNew, &form) return } defer lock.UnLock() @@ -1466,11 +1467,11 @@ func TrainJobCreateVersion(ctx *context.Context, form auth.CreateModelArtsTrainJ isLatestVersion := modelarts.IsLatestVersion lock := redis_lock.NewDistributeLock(redis_key.CloudbrainBindingJobNameKey(fmt.Sprint(repo.ID), string(models.JobTypeTrain), displayJobName)) - isOk := lock.Lock(60 * time.Second) + isOk := lock.Lock(models.CloudbrainKeyDuration) if !isOk { log.Error("The task have been processed", ctx.Data["MsgID"]) versionErrorDataPrepare(ctx, form) - ctx.RenderWithErr("The task have been processed, please wait a minute", tplModelArtsTrainJobVersionNew, &form) + ctx.RenderWithErr(ctx.Tr("repo.cloudbrain_samejob_err"), tplModelArtsTrainJobVersionNew, &form) return } defer lock.UnLock() @@ -2072,11 +2073,11 @@ func InferenceJobCreate(ctx *context.Context, form auth.CreateModelArtsInference } lock := redis_lock.NewDistributeLock(redis_key.CloudbrainBindingJobNameKey(fmt.Sprint(repo.ID), string(models.JobTypeInference), displayJobName)) - isOk := lock.Lock(60 * time.Second) + isOk := lock.Lock(models.CloudbrainKeyDuration) if !isOk { log.Error("The task have been processed", ctx.Data["MsgID"]) inferenceJobErrorNewDataPrepare(ctx, form) - ctx.RenderWithErr("The task have been processed, please wait a minute", tplModelArtsInferenceJobNew, &form) + ctx.RenderWithErr(ctx.Tr("repo.cloudbrain_samejob_err"), tplModelArtsInferenceJobNew, &form) return } defer lock.UnLock()