Browse Source

update job status when fetch job info

tags/vopendata0.1.2
palytoxin 5 years ago
parent
commit
281c8eaca1
2 changed files with 17 additions and 9 deletions
  1. +13
    -9
      models/cloudbrain.go
  2. +4
    -0
      routers/api/v1/repo/cloudbrain.go

+ 13
- 9
models/cloudbrain.go View File

@@ -244,8 +244,7 @@ func CreateCloudbrain(cloudbrain *Cloudbrain) (err error) {
return nil
}

func GetRepoCloudBrainByJobID(repoID int64, jobID string) (*Cloudbrain, error) {
cb := &Cloudbrain{JobID: jobID, RepoID: repoID}
func getRepoCloudBrain(cb *Cloudbrain) (*Cloudbrain, error) {
has, err := x.Get(cb)
if err != nil {
return nil, err
@@ -255,13 +254,18 @@ func GetRepoCloudBrainByJobID(repoID int64, jobID string) (*Cloudbrain, error) {
return cb, nil
}

func GetRepoCloudBrainByJobID(repoID int64, jobID string) (*Cloudbrain, error) {
cb := &Cloudbrain{JobID: jobID, RepoID: repoID}
return getRepoCloudBrain(cb)
}

func GetCloudbrainByJobID(jobID string) (*Cloudbrain, error) {
cb := &Cloudbrain{JobID: jobID}
has, err := x.Get(cb)
if err != nil {
return nil, err
} else if !has {
return nil, errors.New("cloudbrain task is not found")
}
return cb, nil
return getRepoCloudBrain(cb)
}
func SetCloudbrainStatusByJobID(jobID string, status CloudbrainStatus) (err error) {
cb := &Cloudbrain{JobID: jobID, Status: string(status)}
_, err = x.Cols("status").Where("cloudbrain.job_id=?", jobID).Update(cb)
return
}

+ 4
- 0
routers/api/v1/repo/cloudbrain.go View File

@@ -64,6 +64,10 @@ func GetCloudbrainTask(ctx *context.APIContext) {
return
}

if result.JobStatus.State != string(models.JobWaiting) {
go models.SetCloudbrainStatusByJobID(result.Config.JobID, models.CloudbrainStatus(result.JobStatus.State))
}

ctx.JSON(http.StatusOK, map[string]interface{}{
"JobID": result.Config.JobID,
"JobStatus": result.JobStatus.State,


Loading…
Cancel
Save