最新消息:yaf表单扩展中新增加了浮点数、日期和集合的校验。php yaf框架扩展实践三——表单

Golang – iris中通过Plugin设置http超时时间

Golang 445浏览 0评论

最近学习GOLANG时阅读到Go net/http 超时机制完全手册,GO自带的 net/http 中可以使用

srv := &http.Server{  
    ReadTimeout: 5 * time.Second,
    WriteTimeout: 10 * time.Second,
}

来设置超时时间。

同样的,在 valyala/fasthttp 中也可以使用

srv := &fasthttp.Server{  
    ReadTimeout: 5 * time.Second,
    WriteTimeout: 10 * time.Second,
}

进行设置。

不过在iris中,虽然 iris.Server 是嵌入了 fasthttp.Server 不过iris在 Listen 之前是没有创建的,没法设置超时时间。 阅读iris文档和代码后发现,为给iris中的 fasthttp.Server 也设置超时时间,可以通过 iris Plugins 机制进行设置。

iris的Plugins类似于钩子、事物监听、中间件,可以在特定的情况下触发事件。我们只用在Listen之前设置超时即可达到目的了。

app.Plugins.PreListen(func(s *iris.Framework) {  
    s.Servers.Main().ReadTimeout = 5 * time.Second
    s.Servers.Main().WriteTimeout = 5 * time.Second
})

同理,在其它无论是基于 net/http 还是 valyala/fasthttp 的框架中都可以看看Server具体是在什么时候创建以及有没有可能通过在Listen之前触发的事件来设置超时时间。

转载请注明:快乐编程 » Golang – iris中通过Plugin设置http超时时间

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址