一 准备

  • Go版本是1.8,使用http.Server内置的Shutdown()方法进行优雅关闭
  • Go版本低于1.8的请自行查阅资料,有很多库可以使用

一 实例

  main.go

  controller.go

  浏览器访问http://localhost:8080/test/v1.0/testshutdown

  紧接着,立即ctrl+c退出go服务程序

  我们会发现,服务程序开始退出了,而浏览器依旧在执行,直到7s后,浏览器运行完成。
  再过3s (总计10s缓冲),go程序的defer程序执行完成,实现了平滑关闭。

  下一章我们将一起研究golang的热加载、热部署等