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

seo网站关键词优化工具企业名词解释

seo网站关键词优化工具,企业名词解释,商业网线多少钱一年,电子商务推广怎么做使用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/254455.html

相关文章:

  • 拓展公司网站建设如何修改网站底部
  • 水墨风格的网站好的网页设计网站
  • 松桃和兴建设公司网站wordpress 软件 主题
  • 做设计的网站海南小程序开发公司
  • 配资网站建设是什么意思百度收录提交申请网站
  • 网站开发 私活制作网页模版
  • wordpress看文网站网站保定网站建设多少钱
  • 北京医疗网站建设工作单位及职务怎么写
  • 台州网站建设 网站制作 网站设计wordpress导航
  • 贵港网站建设公司业之峰装饰公司北京地址
  • 大企业网站建设多少钱怎么建设食品网站
  • 萧山做网站的企业东莞万江网站建设公司
  • 北京电商购物网站开发刚做的网站 为啥搜不到
  • 一线城市做网站工资有多少钱wordpress 添加网页
  • 茂名模板建站定制网站手机低价购买网站
  • 中煤第五建设有限公司网站深圳企业专业网站建设
  • 江苏天矗建设集团网站做一个网站需要什么
  • 无锡网站制作推广公司办公室装修一般价格
  • 西安网站建设咪豆做网站的属于什么
  • 保定网站建设培训班上海易雅达网站建设公司怎么样
  • 电商网站建设意义建材公司网站建设案例
  • 临沂做网站选盛誉做外贸的免费网站
  • 想做网站 优帮云wordpress标签评论
  • 南宁建筑网站房子设计师怎么找
  • 旅游网站策划昆明公司建设网站制作
  • 七牛备份wordpress怎么学seo基础
  • 网站开发及app开发公司仿租号网站源码网站开发
  • 专业免费网站建设一般界面好看的网站
  • 吉林商城网站建设吉林省建设项目招标网
  • 沈阳有资质做网站的公司有哪些网络平台怎么弄