Browse Source

任务控制

zhangjinkun 6 years ago
parent
commit
1c87b81193
3 changed files with 64 additions and 4 deletions
  1. 23 0
      src/jy/admin/task/task.go
  2. 6 0
      src/jy/extract/extract.go
  3. 35 4
      src/web/templates/admin/task_list.html

+ 23 - 0
src/jy/admin/task/task.go

@@ -4,7 +4,9 @@ package task
 
 import (
 	. "jy/admin"
+	"jy/extract"
 	. "jy/mongodbutil"
+	qu "qfw/util"
 	"time"
 
 	"github.com/gin-contrib/sessions"
@@ -20,6 +22,15 @@ func init() {
 	//获取任务列表
 	Admin.POST("/task/list", func(c *gin.Context) {
 		data, _ := Mgo.Find("task", ``, `{"_id":-1}`, nil, false, -1, -1)
+		for _, v := range *data {
+			_id := qu.BsonIdToSId(v["_id"])
+			tmp := extract.TaskList[_id]
+			if tmp != nil {
+				v["runstatus"] = tmp.IsRun
+			} else {
+				v["runstatus"] = false
+			}
+		}
 		c.JSON(200, gin.H{"data": data})
 	})
 
@@ -52,4 +63,16 @@ func init() {
 		}
 		c.JSON(200, gin.H{"data": list})
 	})
+	//启动任务
+	Admin.POST("/task/start", func(c *gin.Context) {
+		_id, _ := c.GetPostForm("_id")
+		b := extract.StartExtractTaskId(_id)
+		c.JSON(200, gin.H{"rep": b})
+	})
+	//停止任务
+	Admin.POST("/task/stop", func(c *gin.Context) {
+		_id, _ := c.GetPostForm("_id")
+		b := extract.StopExtractTaskId(_id)
+		c.JSON(200, gin.H{"rep": b})
+	})
 }

+ 6 - 0
src/jy/extract/extract.go

@@ -54,6 +54,8 @@ func StopExtractTaskId(taskId string) bool {
 		ext.IsRun = false
 		TaskList[taskId] = ext
 	}
+	//更新task.s_extlastid
+	db.Mgo.UpdateById("task", taskId, `{"$set":{"s_extlastid":"`+ext.TaskInfo.LastExtId+`"}}`)
 	return true
 }
 
@@ -71,7 +73,11 @@ func RunExtractTask(ext *ExtractTask) {
 		j := PreInfo(v)
 		ext.TaskInfo.ProcessPool <- true
 		go ext.ExtractProcess(j)
+		ext.TaskInfo.LastExtId = qu.BsonIdToSId(v["_id"])
+		time.Sleep(1 * time.Second)
 	}
+	//更新task.s_extlastid
+	db.Mgo.UpdateById("task", ext.TaskInfo.LastExtId, `{"$set":{"s_extlastid":"`+ext.TaskInfo.LastExtId+`"}}`)
 	time.AfterFunc(30*time.Minute, func() { RunExtractTask(ext) })
 }
 

+ 35 - 4
src/web/templates/admin/task_list.html

@@ -22,7 +22,7 @@
 		            <table id="dataTable" class="table table-bordered table-hover">
 		              <thead>
 		              <tr>
-		                <th>任务名称</th> <th>创建时间</th> <th>创建人</th> <th>描述</th> <th>操作</th>
+		                <th>任务名称</th> <th>创建时间</th> <th>创建人</th> <th>描述</th><th>运行状态</th> <th>操作</th>
 		              </tr>
 		              </thead>
 		            </table>
@@ -62,11 +62,18 @@ $(function () {
 			}},
 			{ "data": "s_username"},
 			{ "data": "s_descript","width":"25%"},
-			{"data":"_id","width":"25%",render:function(val,a,row,pos){
+			{ "data": "runstatus",render:function(val){
+				if(val){
+					return "<i class='fa fa-fw fa-circle text-green'></i>运行中"
+				}else{
+					return "<i class='fa fa-fw fa-circle text-danger'></i>未启动"
+				}
+			}},
+			{ "data":"_id","width":"25%",render:function(val,a,row,pos){
 				tmp = '<div>'+
 					'<a class="btn btn-sm btn-primary opr" opr="edit" row="'+pos.row+'" >编辑</a> '+
-					'<a class="btn btn-sm btn-success opr" opr="start">启动</a> '+
-					'<a class="btn btn-sm btn-info opr" opr="stop">停止</a> '+
+					'<a class="btn btn-sm btn-success opr" opr="start" onclick="start(\''+row._id+'\')">启动</a> '+
+					'<a class="btn btn-sm btn-info opr" opr="stop" onclick="stop(\''+row._id+'\')">停止</a> '+
 					'<a class="btn btn-sm btn-warning opr" opr="test">测试</a>'+
 					'</div>';
 				return  tmp
@@ -143,4 +150,28 @@ $(function () {
 	})
 	
 })
+function start(_id){
+	showConfirm("确定启动?", function() {
+		$.ajax({
+			url:"/admin/task/start",
+			type:"post",
+			data:{"_id":_id},
+			success:function(r){
+				window.location.reload()
+			}
+		})
+	});
+}
+function stop(_id){
+	showConfirm("确定启动?", function() {
+		$.ajax({
+			url:"/admin/task/stop",
+			type:"post",
+			data:{"_id":_id},
+			success:function(r){
+				window.location.reload()
+			}
+		})
+	});
+}
 </script>