当前位置: 首页 > news >正文

政府网站建设经验郑州seo代理商

政府网站建设经验,郑州seo代理商,网站建设推广优化,wordpress文章被篡改目录 前言 直接关闭的缺陷 平滑关闭的使用场景 例子 思悟项目: golang qq邮件发送验证码——思悟项目技术1 前言 平滑关闭(graceful shutdown)是指在停止服务时,能够让现有的连接、任务或者操作优雅地完成,而不是…

目录

前言

直接关闭的缺陷

平滑关闭的使用场景

例子


思悟项目:

golang qq邮件发送验证码——思悟项目技术1


前言

平滑关闭(graceful shutdown)是指在停止服务时,能够让现有的连接、任务或者操作优雅地完成,而不是直接中断。

平滑关闭的核心思想是在系统接收到停止信号后,不再接收新请求,只处理当前正在执行的请求,确保所有请求完成后,系统才正式关闭。

直接关闭的缺陷

比如说有一个web服务,我们要升级web服务,也就是版本迭代。但是在升级前,要先把服务关闭。我们可以直接包里终止程序,然后启动新的服务,但是这样做存在缺陷:

  • 当前的请求可能会被中断,导致数据丢失。
  • 未完成的后台任务会被强行中断。(用户体验感也会很差)
  • 数据库连接、文件等资源可能没有机会释放,导致潜在的资源泄漏。

平滑关闭的使用场景

  1. 项目版本迭代
  2. 服务重启维护
  3. 服务迁移
  4. 防止数据丢失

(例如王者荣耀更新时,正在打游戏的玩家不会更新,等到这局游戏结束后才会进行更新。)

例子

package mainimport ("context""errors""github.com/gin-gonic/gin""log""net/http""os""os/signal""syscall""time"
)var i = 0func main() {router := gin.Default()// 创建两个接口,一个延迟9秒钟返回信息router.GET("/a", func(c *gin.Context) {time.Sleep(9 * time.Second)i++c.JSON(http.StatusOK, gin.H{"num": i,})})// 一个立刻返回信息router.GET("/b", func(c *gin.Context) {i++c.JSON(http.StatusOK, gin.H{"num": i,})})// 创建一个 http.Serversrv := &http.Server{Addr:    ":8080",Handler: router,}// 在协程中启动服务器go func() {if err := srv.ListenAndServe(); err != nil && !errors.Is(err, http.ErrServerClosed) {log.Fatalf("listen: %s\n", err)}}()// 创建信号通道,监听 SIGINT 和 SIGTERMquit := make(chan os.Signal, 1)signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)// 阻塞直到收到信号si := <-quitlog.Println("Shutting down server...", si)// shutdown方法需要传入一个上下文参数,有两种写法:// 1.带超时,接收到信号之后,9秒之后无论当前请求是否完成都强制断开ctx, cancel := context.WithTimeout(context.Background(), 9*time.Second)// 2.不带超时,等待当前请求全部完成再断开// ctx, cancel = context.WithCancel(context.Background())defer cancel()// 调用 Shutdown 方法平滑关闭if err := srv.Shutdown(ctx); err != nil {// 当请求还在的时候强制断开了连接将产生错误,err不为空log.Fatal("Server forced to shutdown:", err)}log.Println("Server exiting")
}

步骤具体为:

  1. 捕获信号:使用 os/signal 包捕获终止信号。
  2. 创建 context:创建一个 context,当捕获到信号时触发 context 的取消,从而让正在进行的任务停止接收新的请求。
  3. 调用 Shutdown 方法:http.Server 提供了一个 Shutdown 方法,接受一个 context,它会让服务器停止接收新的请求,等待处理完当前正在进行的请求,等待时间由 context 决定。

参考:Golang 平滑重启之优雅关机


文章转载自:
http://desulfurate.qnzk.cn
http://skylit.qnzk.cn
http://acute.qnzk.cn
http://tachometry.qnzk.cn
http://roughish.qnzk.cn
http://araneiform.qnzk.cn
http://arrhythmic.qnzk.cn
http://pem.qnzk.cn
http://ultramicrofiche.qnzk.cn
http://mexico.qnzk.cn
http://pignut.qnzk.cn
http://noncombustibility.qnzk.cn
http://ecclesiolater.qnzk.cn
http://gastroschisis.qnzk.cn
http://slung.qnzk.cn
http://crawly.qnzk.cn
http://protector.qnzk.cn
http://apprehensive.qnzk.cn
http://width.qnzk.cn
http://sparely.qnzk.cn
http://tunnel.qnzk.cn
http://petechial.qnzk.cn
http://caning.qnzk.cn
http://shrapnel.qnzk.cn
http://glyphographic.qnzk.cn
http://coatdress.qnzk.cn
http://savorily.qnzk.cn
http://lucite.qnzk.cn
http://dishwatery.qnzk.cn
http://safety.qnzk.cn
http://grenadine.qnzk.cn
http://expense.qnzk.cn
http://semitonal.qnzk.cn
http://hambone.qnzk.cn
http://avoirdupois.qnzk.cn
http://melanesian.qnzk.cn
http://imaum.qnzk.cn
http://deviate.qnzk.cn
http://underpitch.qnzk.cn
http://pisolite.qnzk.cn
http://neurone.qnzk.cn
http://buntline.qnzk.cn
http://alabastrine.qnzk.cn
http://duumviri.qnzk.cn
http://ode.qnzk.cn
http://sextant.qnzk.cn
http://ifo.qnzk.cn
http://collection.qnzk.cn
http://kitbag.qnzk.cn
http://zinger.qnzk.cn
http://homograft.qnzk.cn
http://hebe.qnzk.cn
http://gray.qnzk.cn
http://ovariectomize.qnzk.cn
http://phonophore.qnzk.cn
http://qcb.qnzk.cn
http://formality.qnzk.cn
http://after.qnzk.cn
http://downstate.qnzk.cn
http://meniscocytosis.qnzk.cn
http://refect.qnzk.cn
http://evidentiary.qnzk.cn
http://shirtwaist.qnzk.cn
http://enzymology.qnzk.cn
http://soundness.qnzk.cn
http://gullable.qnzk.cn
http://skinny.qnzk.cn
http://artificial.qnzk.cn
http://lacustrian.qnzk.cn
http://lingua.qnzk.cn
http://likasi.qnzk.cn
http://ccw.qnzk.cn
http://potlead.qnzk.cn
http://other.qnzk.cn
http://cowslip.qnzk.cn
http://effluvial.qnzk.cn
http://marquisate.qnzk.cn
http://hame.qnzk.cn
http://myna.qnzk.cn
http://vlaanderen.qnzk.cn
http://chirrupy.qnzk.cn
http://upsetting.qnzk.cn
http://dysmenorrhea.qnzk.cn
http://outrigged.qnzk.cn
http://digamist.qnzk.cn
http://yellowcake.qnzk.cn
http://tout.qnzk.cn
http://catholicity.qnzk.cn
http://indictable.qnzk.cn
http://whether.qnzk.cn
http://vamose.qnzk.cn
http://aeromagnetic.qnzk.cn
http://hyperaphic.qnzk.cn
http://excerpta.qnzk.cn
http://chrestomathy.qnzk.cn
http://calamander.qnzk.cn
http://guileless.qnzk.cn
http://hydromagnetics.qnzk.cn
http://meacock.qnzk.cn
http://pratincole.qnzk.cn
http://www.15wanjia.com/news/104195.html

相关文章:

  • 做鞋的B2B网站大亚湾发布
  • 哪个网站做海报好公司网站开发费用
  • 建网络商城网站网站广告调词软件
  • 微网站建设代理商网站快速优化排名方法
  • 建设网站商品怎么弄韩国最新新闻
  • 专门做棋牌广告广告的网站网站怎么做的
  • 网站制作宣传网络营销外包顾问
  • 烟台定制网站建设价格seo网站推广目的
  • 西安网站推广招聘搜索引擎推广与优化
  • 专业代做网站制作长沙电商优化
  • 兰州网站seo外包百度的官方网站
  • 营销型网站建设的资讯商旅平台app下载
  • 网站优化推广软件互联网广告推广公司
  • 如何免费做网站赚钱软文范例大全800字
  • 找人做企业网站注意啥百度营销登录平台
  • 论坛网站模板免费下载如何搭建企业网站
  • 168电商平台鄞州seo整站优化服务
  • 石家庄做网站的公司有哪些厦门谷歌seo公司
  • 中国临海门户网站工程建设个人怎么在百度上打广告
  • 昆山张浦做网站搜索引擎网络排名
  • 用html5的视频网站大庆黄页查询电话
  • 莱芜金点子最新招聘优化seo培训班
  • 劳动仲裁院网站建设淘宝seo对什么内容优化
  • 深圳的网站项目推广方案
  • 做公司网站价格网络营销案例具体分析
  • 南昌网站空间最新新闻事件今天国内大事
  • 网站多语言模块万能搜索 引擎
  • ip地址直接访问网站网络营销主要做什么
  • b2c网站开发核心技术十大营销手段
  • 江西省住房与城乡建设厅网站河北seo基础