加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
kiteq.go 1.02 KB
一键复制 编辑 原始数据 按行查看 历史
package main
import (
"fmt"
log "github.com/blackbeans/log4go"
"github.com/blackbeans/turbo"
"kiteq/server"
_ "net/http/pprof"
"os"
"os/signal"
"runtime"
"runtime/debug"
"syscall"
"time"
)
func main() {
//加载启动参数
so := server.Parse()
runtime.GOMAXPROCS(runtime.NumCPU())
rc := turbo.NewRemotingConfig(
"remoting",
20000, 16*1024,
16*1024, 10000, 10000,
10*time.Second, 160000)
kc := server.NewKiteQConfig(so, rc)
qserver := server.NewKiteQServer(kc)
qserver.Start()
var s = make(chan os.Signal, 1)
signal.Notify(s, syscall.SIGKILL, syscall.SIGUSR1)
//是否收到kill的命令
for {
cmd := <-s
if cmd == syscall.SIGKILL {
break
} else if cmd == syscall.SIGUSR1 {
//如果为siguser1则进行dump内存
unixtime := time.Now().Unix()
path := fmt.Sprintf("./heapdump-kiteq-%d", unixtime)
f, err := os.Create(path)
if nil != err {
continue
} else {
debug.WriteHeapDump(f.Fd())
}
}
}
qserver.Shutdown()
log.InfoLog("kite_server", "KiteQServer IS STOPPED!")
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化