|
|
|
|
@ -89,18 +89,29 @@ func CheckMonkeyTasks() {
|
|
|
|
|
|
|
|
|
|
// 判断运行中的任务的实际状态
|
|
|
|
|
db.Model(models.MonkeyTask{}).Where("status = ? AND is_del = 0", "RUNNING").Find(&list)
|
|
|
|
|
for _, v := range list {
|
|
|
|
|
for i, v := range list {
|
|
|
|
|
if v.Platform == "adr" {
|
|
|
|
|
// 如果无对应正在运行的容器,判断为【结束】或【异常停止】
|
|
|
|
|
if len(monkey.GetTaskFromDocker(v.Id)) == 0 {
|
|
|
|
|
// 如果预期结束时间(任务开始时间+运行时间) < 当前时间,判断任务为运行正常结束
|
|
|
|
|
if v.StartTime+v.RunTime < int(time.Now().Unix()) {
|
|
|
|
|
// list[i].Status = "FINISH"
|
|
|
|
|
if v.StartTime+v.RunTime+300 < int(time.Now().Unix()) {
|
|
|
|
|
list[i].Status = "FINISH"
|
|
|
|
|
// db.Table(v.TableName()).Model(models.MonkeyTask{}).Where("id = ?", v.Id).Update("status", list[i].Status)
|
|
|
|
|
// db.Table(v.TableName()).Model(models.MonkeyTask{}).Where("id = ?", v.Id).Update("end_time", time.Now().Unix())
|
|
|
|
|
// common.PushCorntaskLog("[autogo] 任务标记为FINISH, " + cast.ToString(v.Id))
|
|
|
|
|
// common.PushMonkeyResult(v)
|
|
|
|
|
} else {
|
|
|
|
|
common.PushCorntaskLog("任务状态似乎异常,task_id=" + cast.ToString(v.Id))
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
// 预期结束时间(任务开始时间+运行时间) < 当前时间,判断任务为运行正常结束
|
|
|
|
|
if v.StartTime+v.RunTime+300 < int(time.Now().Unix()) {
|
|
|
|
|
list[i].Status = "FINISH"
|
|
|
|
|
db.Table(v.TableName()).Model(models.MonkeyTask{}).Where("id = ?", v.Id).Update("status", list[i].Status)
|
|
|
|
|
db.Table(v.TableName()).Model(models.MonkeyTask{}).Where("id = ?", v.Id).Update("end_time", time.Now().Unix())
|
|
|
|
|
common.PushCorntaskLog("[autogo] 任务标记为FINISH, 但容器未退出, task_id=" + cast.ToString(v.Id))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|