Browse Source

#1249

update
tags/v1.22.9.2^2
chenyifan01 3 years ago
parent
commit
6c85bacd74
5 changed files with 30 additions and 3 deletions
  1. +2
    -0
      models/cloudbrain_spec.go
  2. +1
    -1
      modules/notification/reward/point.go
  3. +10
    -2
      routers/repo/cloudbrain.go
  4. +2
    -0
      routers/routes/routes.go
  5. +15
    -0
      services/reward/cloudbrain_deduct.go

+ 2
- 0
models/cloudbrain_spec.go View File

@@ -72,6 +72,8 @@ func NewCloudBrainSpec(cloudbrainId int64, s Specification) CloudbrainSpec {
}
}

var StatusChangeChan = make(chan *Cloudbrain, 50)

func InsertCloudbrainSpec(c CloudbrainSpec) (int64, error) {
return x.Insert(&c)
}


+ 1
- 1
modules/notification/reward/point.go View File

@@ -22,6 +22,6 @@ func NewNotifier() base.Notifier {
func (*pointNotifier) NotifyChangeCloudbrainStatus(cloudbrain *models.Cloudbrain, oldStatus string) {
log.Info("pointNotifier NotifyChangeCloudbrainStatus cloudbrain.id=%d cloudbrain.status=%s oldStatus=%s", cloudbrain.ID, cloudbrain.Status, oldStatus)
if cloudbrain.IsRunning() || cloudbrain.IsTerminal() {
//reward.DeductPoint4Cloudbrain(*cloudbrain, time.Now())
models.StatusChangeChan <- cloudbrain
}
}

+ 10
- 2
routers/repo/cloudbrain.go View File

@@ -1204,7 +1204,7 @@ func StopJobs(cloudBrains []*models.Cloudbrain) {
})

logErrorAndUpdateJobStatus(err, taskInfo)
} else {
} else if taskInfo.Type == models.TypeCloudBrainTwo {
if taskInfo.JobType == string(models.JobTypeTrain) {
err := retry(3, time.Second*30, func() error {
_, err := modelarts.StopTrainJob(taskInfo.JobID, strconv.FormatInt(taskInfo.VersionID, 10))
@@ -1221,8 +1221,16 @@ func StopJobs(cloudBrains []*models.Cloudbrain) {
})
logErrorAndUpdateJobStatus(err, taskInfo)
}
}
} else if taskInfo.Type == models.TypeC2Net {
if taskInfo.JobType == string(models.JobTypeTrain) {
err := retry(3, time.Second*30, func() error {
_, err := grampus.StopJob(taskInfo.JobID)
return err
})
logErrorAndUpdateJobStatus(err, taskInfo)
}

}
}
}



+ 2
- 0
routers/routes/routes.go View File

@@ -8,6 +8,7 @@ import (
"bytes"
"code.gitea.io/gitea/routers/reward/point"
"code.gitea.io/gitea/routers/task"
"code.gitea.io/gitea/services/reward"
"encoding/gob"
"net/http"
"path"
@@ -331,6 +332,7 @@ func RegisterRoutes(m *macaron.Macaron) {
m.Get("/dashboard", routers.Dashboard)
go routers.SocketManager.Run()
go task.RunTask()
go reward.AcceptStatusChangeAction()
m.Get("/action/notification", routers.ActionNotification)
m.Get("/recommend/home", routers.RecommendHomeInfo)
//m.Get("/recommend/org", routers.RecommendOrgFromPromote)


+ 15
- 0
services/reward/cloudbrain_deduct.go View File

@@ -15,6 +15,15 @@ var (

const RUN_CLOUDBRAIN_TASK_TITTLE = "运行云脑任务"

func AcceptStatusChangeAction() {
for {
select {
case task := <-models.StatusChangeChan:
DeductPoint4Cloudbrain(*task, time.Now())
}
}
}

func StartAndGetCloudBrainPointDeductTask(task models.Cloudbrain) (*models.RewardPeriodicTask, error) {
if !setting.CloudBrainPaySwitch {
return nil, nil
@@ -86,6 +95,12 @@ func StartCloudbrainPointDeductTask() {
}

func DeductPoint4Cloudbrain(t models.Cloudbrain, now time.Time) error {
defer func() {
if err := recover(); err != nil {
combinedErr := fmt.Errorf("%s\n%s", err, log.Stack(2))
log.Error("PANIC:%v", combinedErr)
}
}()
log.Debug("start to deduct point for cloudbrain[%d]", t.ID)
if t.StartTime == 0 {
log.Debug("cloudbrain[%d] task not start", t.ID)


Loading…
Cancel
Save