380 Star 2.5K Fork 620

GVPJohn / gf

 / 详情

启用web服务,go func()会打印出两个“test”结果

已完成
创建于  
2018-05-26 10:52

启用web服务,go func()会打印出两个“test”结果,麻烦看下为什么

func main() {
go func() {
for {
fmt.Println("test")
time.Sleep(2 * time.Second)
}}()

s := g.Server()

s.SetPort(9000)
s.Run()

}

评论 (2)

katydid酱 创建了任务
katydid酱 更新了任务
John 开始了任务

你好,因为gf的web热重启机制,gf的web server采用的是多进程控制,按照你的希望,程序可以这样进行修改:

package main

import (
    "fmt"
    "time"
    "gitee.com/johng/gf/g"
    "gitee.com/johng/gf/g/os/gproc"
)

func main() {
    if !gproc.IsChild() {
        go func() {
            for {
                fmt.Println("test")
                time.Sleep(2 * time.Second)
            }
        }()
    }
    s := g.Server()
    s.SetPort(9000)
    s.Run()
}
John 关闭了任务

谢谢大神解答! :smile:

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
1309327 johng 1705475649
Go
1
https://gitee.com/johng/gf.git
git@gitee.com:johng/gf.git
johng
gf
gf

搜索帮助

344bd9b3 5694891 D2dac590 5694891