社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
1 .无缝重启
go func(){
if err:=s.ListenAndServe();err!=nil&&err!=http.ErrServerClosed{
fmt.Println("关机了")
log.Fatalf("listen: %sn",err)
}
}()
quit:=make(chan os.Signal)
signal.Notify(quit,os.Interrupt)
<-quit
fmt.Println("关闭服务端")
ctx,cancel:=context.WithTimeout(context.Background(),5*time.Second)
defer cancel()
if err:=s.Shutdown(ctx);err!=nil{
fmt.Println("关闭服务器",err)
}
fmt.Println("关闭退出")
2 .自定义http服务器配置
s:=&http.Server{
Addr:":8080",
Handler:r,
ReadTimeout:5*time.Second,
WriteTimeout:10*time.Second,
MaxHeaderBytes:1<<20,
}
1 .在终端执行某些特定组合键可以使系统发送特定的信号给此进程,完成一系列动作
2 .信号使一种操作系统进程间通讯的以中国有限制的方式
3 .是一种异步的通知机制,用来提醒进程一个事件已经发生。
4 .当一个信号发送给一个进程,操作系统中断了进程正常的控制流程,此时任何非原子操作都将被打断。
5 .如果进程定义了信号处理函数,那么就会执行,否则就执行默认处理函数
1 .不关闭现有连接,正在运行中的程序
2 .新的进程启动并替代旧的进程
3 .新的进程接管新的连接
4 .连接要随时响应用户的请求,当用户仍在请求旧进程时要保持连接,新用户因该请求新进程
5 不能出现请求被拒绝的时候
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!