安卓调整

master
luziqi 3 years ago
parent 7ba8e1d5d5
commit 9dcaee11d5

@ -36,7 +36,7 @@ func PushMonkeyResult(task models.MonkeyTask) {
cli := dingtalk.InitDingTalkWithSecret(Bot_Test_Token, Bot_Test_Secret)
if task.Remark != "debug" {
n, err := GetNotifyInfo("monkey", task.Project)
if err == nil {
if err == nil && len(n.Token) > 10 && len(n.Secret) > 10 {
cli = dingtalk.InitDingTalkWithSecret(n.Token, n.Secret)
}
}

@ -17,6 +17,7 @@ import (
func Run() {
crontab := cron.New(cron.WithSeconds())
crontab.AddFunc("0 */1 * * * ?", CheckAndroidDevices)
crontab.AddFunc("0 */1 * * * ?", CheckIOSDevices)
crontab.AddFunc("*/15 * * * * ?", CheckMonkeyTasks)
crontab.Start()
fmt.Println("[Crontab] 定时任务启动")
@ -50,7 +51,7 @@ func CheckAndroidDevices() {
defer dbsql.Close(db)
var list []models.Device
db.Model(models.Device{}).Where("is_del = 0").Find(&list)
db.Model(models.Device{}).Where("platform = ? AND is_del = 0", "adr").Find(&list)
for _, v := range list {
if vv, ok := device[v.Udid]; ok {
// 数据表中的设备adb有获取到
@ -97,7 +98,7 @@ func CheckTaskStatus() {
// 如果无对应正在运行的容器,判断为【结束】或【异常停止】
if len(monkey.GetTaskFromDocker(v.Id)) == 0 {
// 如果预期结束时间(任务开始时间+运行时间) < 当前时间,判断任务为运行正常结束
if v.UpdateTime+v.RunTime < int(time.Now().Unix()) {
if v.CreateTime+v.RunTime < int(time.Now().Unix()) {
list[i].Status = "FINISH"
db.Table(v.TableName()).Model(models.MonkeyTask{}).Where("id = ?", v.Id).Update("status", list[i].Status)
} else {

@ -21,42 +21,40 @@ func CheckMonkeyTasks() {
var list []models.MonkeyTask
db.Model(models.MonkeyTask{}).Where("status = ? AND is_del = 0", "WAITTING").Find(&list)
// 运行等待中的任务
for _, task := range list {
product_name := task.Product
if strings.Contains(task.Product, "-") {
product_name = strings.Split(task.Product, "-")[0]
}
var device models.Device
db.Table("device").Model(models.Device{}).Where("project = ? AND product_name = ? AND status = ?", task.Project, product_name, "online").First(&device)
if device.ID < 1 {
// 没有空闲设备
continue
if task.Platform == "adr" {
product_name := task.Product
if strings.Contains(task.Product, "-") {
product_name = strings.Split(task.Product, "-")[0]
}
var device models.Device
db.Table("device").Model(models.Device{}).Where("project = ? AND product_name = ? AND status = ?", task.Project, product_name, "online").First(&device)
if device.ID < 1 {
// 没有空闲设备
continue
}
db.Table("device").Model(models.Device{}).Where("udid = ?", device.Udid).Update("status", "busy")
go monkey.RunAndroidMonkeyCmd(task, device.Udid)
common.PushCorntaskLog("执行Monkey任务" + task.Project + "-" + device.Udid)
}
db.Table("device").Model(models.Device{}).Where("udid = ?", device.Udid).Update("status", "busy")
go monkey.RunAndroidMonkeyCmd(task, device.Udid)
common.PushCorntaskLog("执行Monkey任务" + task.Project + "-" + device.Udid)
}
// 判断运行中的任务的实际状态
db.Model(models.MonkeyTask{}).Where("status = ? AND is_del = 0", "RUNNING").Find(&list)
for i, v := range list {
// 如果无对应正在运行的容器,判断为【结束】或【异常停止】
if len(monkey.GetTaskFromDocker(v.Id)) == 0 {
// 如果预期结束时间(任务开始时间+运行时间) < 当前时间,判断任务为运行正常结束
if v.UpdateTime+v.RunTime < int(time.Now().Unix()) {
list[i].Status = "FINISH"
db.Table(v.TableName()).Model(models.MonkeyTask{}).Where("id = ?", v.Id).Update("status", list[i].Status)
common.PushMonkeyResult(v)
} else {
common.PushCorntaskLog("任务状态似乎异常task_id=" + cast.ToString(v.Id))
if v.Platform == "adr" {
// 如果无对应正在运行的容器,判断为【结束】或【异常停止】
if len(monkey.GetTaskFromDocker(v.Id)) == 0 {
// 如果预期结束时间(任务开始时间+运行时间) < 当前时间,判断任务为运行正常结束
if v.UpdateTime+v.RunTime < int(time.Now().Unix()) {
list[i].Status = "FINISH"
db.Table(v.TableName()).Model(models.MonkeyTask{}).Where("id = ?", v.Id).Update("status", list[i].Status)
common.PushMonkeyResult(v)
} else {
common.PushCorntaskLog("任务状态似乎异常task_id=" + cast.ToString(v.Id))
}
}
}
// var pids []models.MonkeyPid
// db.Model(models.MonkeyPid{}).Where("task_id = ?", task.Id).Find(&pids)
// if code := checkTaskPids(pids); code == 0 {
// task.Status = "RUNNING"
// } else if code == 1 {
// task.Status = "FINISH"
// db.Model(models.MonkeyTask{}).Where("id = ?", task.Id).Update("status", task.Status)
// common.PushMonkeyResult(task)
// }
}
}

@ -305,7 +305,7 @@ func GetTaskById(c *gin.Context) {
c.JSON(http.StatusOK, rsp)
}
// @Tags Monkey相关 /api/monkey/v1/
// @Tags 文件相关 /webdav
// @Summary 上传Logcat日志
// @Description 上传Logcat日志
// @accept x-www-form-urlencoded
@ -443,12 +443,13 @@ func StopMonkeyTask(c *gin.Context) {
list := GetTaskFromDocker(task_id)
for _, v := range list {
if StopDockerContainer(v.Name) {
db.Table("monkey_task").Model(models.MonkeyTask{}).Where("id = ?", task_id).Update("status", "CANCEL")
db.Table("device").Model(models.Device{}).Where("udid = ?", v.Device).Update("status", "online")
}
}
rsp.Data = list
db.Table("monkey_task").Model(models.MonkeyTask{}).Where("id = ?", task_id).Update("status", "CANCEL")
rsp.Data = "done"
c.JSON(http.StatusOK, rsp.Success())
return

Loading…
Cancel
Save