|
|
|
@@ -3,10 +3,10 @@ package cloudbrainTask |
|
|
|
import ( |
|
|
|
"net/http" |
|
|
|
"strconv" |
|
|
|
"time" |
|
|
|
|
|
|
|
"code.gitea.io/gitea/models" |
|
|
|
"code.gitea.io/gitea/modules/cloudbrain" |
|
|
|
"code.gitea.io/gitea/modules/httplib" |
|
|
|
"code.gitea.io/gitea/modules/log" |
|
|
|
"code.gitea.io/gitea/modules/notification" |
|
|
|
"code.gitea.io/gitea/modules/setting" |
|
|
|
@@ -17,7 +17,7 @@ var noteBookFailMap = make(map[int64]int, 20) |
|
|
|
|
|
|
|
//if a task notebook url can get successfulCount times, the notebook can browser. |
|
|
|
const successfulCount = 3 |
|
|
|
const maxSuccessfulCount=12 |
|
|
|
const maxSuccessfulCount=10 |
|
|
|
|
|
|
|
func SyncCloudBrainOneStatus(task *models.Cloudbrain) (*models.Cloudbrain, error) { |
|
|
|
jobResult, err := cloudbrain.GetJob(task.JobID) |
|
|
|
@@ -65,19 +65,23 @@ func isNoteBookReady(task *models.Cloudbrain) bool { |
|
|
|
return true |
|
|
|
} |
|
|
|
noteBookUrl := setting.DebugServerHost + "jpylab_" + task.JobID + "_" + task.SubTaskName |
|
|
|
r := httplib.Get(noteBookUrl) |
|
|
|
res, err := r.Response() |
|
|
|
res,err := http.Get(noteBookUrl) |
|
|
|
if err != nil { |
|
|
|
return false |
|
|
|
} |
|
|
|
log.Info("notebook success count:"+strconv.Itoa(noteBookOKMap[task.ID])+",fail count:"+strconv.Itoa(noteBookFailMap[task.ID])) |
|
|
|
if res.StatusCode == http.StatusOK { |
|
|
|
|
|
|
|
count := noteBookOKMap[task.ID] |
|
|
|
if count < successfulCount-1 || (noteBookFailMap[task.ID]==0 && count < maxSuccessfulCount-1){ |
|
|
|
if count==0{ //如果是第一次成功,把失败数重置为0 |
|
|
|
noteBookFailMap[task.ID]=0 |
|
|
|
} |
|
|
|
|
|
|
|
waitingTime:=time.Now().Unix() - task.CreatedUnix.AsTime().Unix() |
|
|
|
if (count < successfulCount-1 || (noteBookFailMap[task.ID]==0 && count < maxSuccessfulCount-1)) && waitingTime<720{ |
|
|
|
noteBookOKMap[task.ID] = count + 1 |
|
|
|
return false |
|
|
|
} else { |
|
|
|
log.Info("notebook success count:"+strconv.Itoa(count)+",fail count:"+strconv.Itoa(count)) |
|
|
|
log.Info("notebook success count:"+strconv.Itoa(count)+",fail count:"+strconv.Itoa(noteBookFailMap[task.ID])) |
|
|
|
delete(noteBookOKMap, task.ID) |
|
|
|
delete(noteBookFailMap, task.ID) |
|
|
|
return true |
|
|
|
@@ -85,9 +89,6 @@ func isNoteBookReady(task *models.Cloudbrain) bool { |
|
|
|
|
|
|
|
}else{ |
|
|
|
noteBookFailMap[task.ID]+=1 |
|
|
|
if noteBookOKMap[task.ID]>0{ |
|
|
|
noteBookOKMap[task.ID]=0 |
|
|
|
} |
|
|
|
} |
|
|
|
return false |
|
|
|
|
|
|
|
|