在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/GO  HTML/ 如何使用golang控制后臺(tái)任務(wù)

如何使用golang控制后臺(tái)任務(wù)

目前有一個(gè)需求就是使用golang運(yùn)行一個(gè)web服務(wù)。
如何通過瀏覽器訪問來啟動(dòng)或者關(guān)閉一個(gè)任務(wù)進(jìn)程?
這個(gè)任務(wù)將會(huì)一直運(yùn)行下去。

目前我采用的方法,不知道是否有更好的方法來進(jìn)行控制

//匿名控制器。允許任意函數(shù)處理
package controller

import (
    "github.com/gin-gonic/gin"
    "fmt"
    "time"
    "runtime"
)

var Runing = false
var Exit = false

func Run() {
    fmt.Println("Runing",Runing)
    if Runing {
        runtime.Goexit()
    }
    Runing = true
    fmt.Println("Runing",Runing)
    fmt.Println("Goid()",Goid())
    num := 0
    for true {
        fmt.Println("num",num)
        num++
        if Exit {
            runtime.Goexit()
        }
        time.Sleep(1 * time.Second)
    }
}
//地址訪問/api/test?open=true進(jìn)行開啟關(guān)閉
func Test(c *gin.Context){
    open := c.Query("open")
    if open == "true" {
        Exit = false
        go Run()
    } else {
        Exit = true
        Runing = false
    }
    c.JSON(200,open)
}

回答
編輯回答
耍太極

web端通過http請(qǐng)求調(diào)用服務(wù)端,在服務(wù)端啟動(dòng)服務(wù)即可,停止服務(wù)也是一樣的

2018年9月22日 23:37
編輯回答
尋仙

你現(xiàn)在用 go 跑了一個(gè) web 服務(wù),那就用瀏覽器發(fā)請(qǐng)求啊,比如 /run/abc,go web server 就啟動(dòng) abc 這個(gè)程序;請(qǐng)求 /stop/abc 就關(guān)閉 abc。web 服務(wù)那邊就 fork 子進(jìn)程來運(yùn)行 abc,或者 kill 掉 abc。如果某個(gè)程序可以有多個(gè),你還可以傳遞 pid

2017年5月9日 17:46