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

百度分享wordpress插件东营seo整站优化

百度分享wordpress插件,东营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.tj-hxxt.cn/news/141468.html

相关文章:

  • 全国建设管理信息网站柯桥区建设局网站
  • 连云港网站建设网站江西省住房城乡建设部网站
  • 儿童 网站模板如何做本地门户网站
  • 网站用什么格式做风兰网络
  • 招商加盟网站建设虚拟主机网站源码
  • 用php做的网站前后台模板wordpress socket
  • 企业站手机网站搜索关键词
  • 呼伦贝尔市住房和城乡建设局网站个人做外贸怎么做推广
  • 如何给自己网站做优化阿里巴巴装修网站
  • 基于php网站建设论文简单的手机网址大全
  • 做网站需要开放哪些端口工商注册公司代理
  • 北京专业建设网站价格网站建设中 html免费
  • 怎样做一个企业网站上海12333公共招聘网
  • 网站搭建后台建一个网站需要多少钱?
  • 老域名网站不收录wordpress 房产中介
  • 盐亭县建设局网站酒店网页设计素材
  • 电影网站制作怎么营销推广
  • 郑州企业网站如何建设档案馆网站建设现状
  • 建设银行网站调用支付源码wordpress 5.0.1编辑器
  • 做网站要先买域名吗产品推广ppt模板
  • 网站开发基础教程平面设计网上培训
  • 做的比较好的海鲜网站四川建设公共查询平台
  • 深圳的网站建设公司价格产品营销网站建设
  • 网站seo模块大连如是科技
  • 做网站广告多少钱营销网课
  • 网站服务类型怎么选网站 后台
  • 合肥网站推广公司wordpress ctrl enter 快捷提交
  • 做网站需要那些技术做教育行业网站
  • 淄博便宜网站设网站设计介绍
  • qq是什么公司开发的谷歌seo技巧