daemon 有两个线程
qianxiansheng90 opened this issue · comments
代码:
var tick1Interval=3
var cronGenerateTaskTick=time.NewTimer(time.Duration(tick1Interval)*time.Second)
func main() {
mux:=http.NewServeMux()
mux.HandleFunc("/write",HTTPSWrite)
go ss()
graceful.ListenAndServe(fmt.Sprintf(":9090"), mux)
}
func ss() {
for {
select {
case <-cronGenerateTaskTick.C:
fmt.Printf("%s:%d\n",time.Now().Format("15:04:05"),tick1Interval)
cronGenerateTaskTick.Reset(0*time.Second)
cronGenerateTaskTick=time.NewTimer(time.Duration(tick1Interval)time.Second)
time.Sleep(1time.Second)
}
}
}
输出结果:
12:31:30:3
12:31:30:3
12:31:33:3
12:31:33:3
12:31:36:3
每次都有两个,如果使用http.ListenAndServe("0.0.0.0:9090",mux) 就不会有这个问题?
请教一下这个是怎么回事?
我好像明白了,因为fork了一次,所以有两个线程。
对的,这样主要是为为了兼容systemd和supervisor
👌,我用pid去重了