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

网站建设项目前分析装修公司排名哪家好的

网站建设项目前分析,装修公司排名哪家好的,网站开发培训机构,智能家装使用Go开发web服务时很多情况下都会使用号称比标准库快10x的FastHttp, 但fasthttp(版本: 20180529.0.0)至今也没有提供优雅关闭的方法#xff0c;默认情况下退出服务只能kill。下面谈几个实现方案。 首先#xff0c;要明确所谓的优雅关闭是要求我们在调用close()时要做到以下…使用Go开发web服务时很多情况下都会使用号称比标准库快10x的FastHttp, 但fasthttp(版本: 20180529.0.0)至今也没有提供优雅关闭的方法默认情况下退出服务只能kill。下面谈几个实现方案。 首先要明确所谓的优雅关闭是要求我们在调用close()时要做到以下几点 拒绝接受新连接等待正在处理的请求完成然后关闭连接关闭剩余空闲的连接 要做到第一点我们需要重写一下net.Listener实现例如叫GraceListener, 在此结构体中组合一个真正干活的Listener覆盖Close()方法在此方法中先将干活的Listener关闭此时就不会再监听新请求了然后再block当前routine直到所有连接全部关闭为止。代码如下 type graceListener struct {net.Listener }func (gl *graceListener) Close() error {err : gl.Close()if nil ! err {return err}// block, 直到所有连接关闭 } fastServ : fasthttp.Server{Concurrency: 100,Handler: xxxFunc,LogAllErrors: true,}ln, err : net.Listen(tcp4, :8080)if nil ! err {// err}graceLn : graceListener{Listener: ln,}fastServ.Serve(graceLn) 接下来看看如何满足后面两条要求。这里有两种方案第一种最简单的方案是保存一个全局的sync.WaitGroup指针在你的请求处理函数中先调用wg.Add(1), 然后defer wg.Done(), 最后在上面的Close()方法中使用wg.Wait()即可。这里建议最好使用select给等待加个超时功能即如果超过指定时间还没有退出则强制退出 // 此方法一直block到所有请求退出或超时 func WaitForGracefullyClose() error {select {case -waitAllRoutineDone():return nilcase -time.After(maxWait):return fmt.Errorf(force shutdown after %v, maxWait)}}// 等待所有请求处理routine完成; // 此方法返回只有1个缓冲的channel, 只有当所有routine结束时channel才会有元素 func waitAllRoutineDone() chan struct{} {flagChan : make(chan struct{}, 1)go func() {wg.Wait()flagChan - struct{}{}}()return flagChan } 此外还有第二种方案那就是在自己的graceListener中添加一个计数器用于统计当前的连接数重写Accept()方法将计数器1再定义一个自己的套壳net.Conn实现重写Close()方法在里面将计数器-1。这里要注意线程安全问题最好使用atomic包进行操作。最后在graceListener#Close()中关闭Listener后等待计数器归零。这种方案有以下几个缺点 实现繁琐无法处理keep-alive连接。即请求已经处理完成但是连接并没有关闭这时计数器不会归零。不过可以使用go 1.3新增加的 Conn State Hook来实现当连接状态变更时的通知但是也是比较繁琐的。 因此不推荐这种方案。 完成Http Server的关闭后就可以添加一些清理自己业务资源的逻辑了比如关闭数据库连接redis连接取消注册刷新日志等。
http://www.dnsts.com.cn/news/28960.html

相关文章:

  • 亚星网站代理德州建设小学网站
  • 网站开发能赚多少钱活动网站推广
  • php网站开发技术背景东莞证券手机app下载安装
  • 用eclipce做登录网站企业网站如何推广
  • jsp做网站实例教程酒店网站制作策划
  • 做宣传用什么网站好宣城哪里做网站
  • 做网站排名多少钱WordPress 4.7漏洞
  • 海南响应式网站建设制作贵阳百度快照优化排名
  • 网站建设 佛山网站推广及seo方案
  • 汝阳网站开发合肥网站建设服务公司
  • 网站建设互联网加金属材料东莞网站建设
  • 北京开发网站垂直门户网站都有什么
  • seo蒙牛伊利企业网站专业性诊断wordpress创建配置文件 没反应
  • 自己做网站 什么软件平面设计包括什么
  • 大气网站模板下载动画设计毕业作品搞笑
  • 路桥建设网站中国能源建设集团有限公司董事长
  • 做维修注册网站wordpress 仿魔客吧
  • 学校网站开发系统的背景深圳网站建设公司哪家专业
  • 美橙网站开发seo推广方法有哪些
  • 北京建设工程教育中心网站重庆天气专业网站建设
  • .net 大型网站开发技术wordpress怎么修改模板文件
  • ftp给网站上传图片后图片的链接地址被改了access数据库做网站
  • 我想做京东网站淘宝怎么做易语言做网站客户端
  • 网站图片设置4:3网络营销的效果表现在哪几个方面
  • 一个空间做多个网站网站维护费计入什么科目
  • 域名注册服务商网站绿色食品网站模板.htm
  • html网页制作个人网站目前提供目录类搜索引擎的网站
  • 北京城市副中心投资建设公司网站国内永久免费网游
  • app开发公司职位南通优化网站价格
  • 提供模板网站制作多少钱网站 302重定向 备案