Golang三种方式实现超时退出

Posted by 夏泽民

https://juejin.im/post/5e774a73e51d4526c70fd0a4 我们可以在接口请求出错抛出err的时候重试,但是这种不好控制,如果一个请求出去,十来秒都没有响应,则这个协程就要傻傻的等他报错才能重试,浪费生命啊~ 所以结合上面同学给出的毫秒级响应指标,可以设定一个超时时间,如果在指定超时时间后没有返回结果,则重试(这篇重试不是重点)。 func AsyncCall() { ctx, cancel := context.WithTimeout(context.Background(), time.Duration(time.Millisecond*800)) defer cancel() go func(ctx context.Context) { // 发送HTTP请求 }()



Go进程的HeapReleased上升但是RSS不下降造成内存泄漏

Posted by 夏泽民

https://pengrl.com/p/20033/ 事情是这样的,线上一个服务,启动后RSS随任务数增加而持续上升,但是过了业务高峰期后,任务数已经下降,RSS却没有下降,而是维持在高位水平。



prestissimo Composer 加速

Posted by 夏泽民

https://github.com/hirak/prestissimo https://zhuanlan.zhihu.com/p/64419387 它的作用就是在安装拓展的时候提升 Composer 的安装速度,其原理是使用多进程下载的方式来解决。我体验了一下,真的是爽到不行。它的安装也是非常简单。



Golang连接池的几种实现

Posted by 夏泽民

https://mp.weixin.qq.com/s/qWfci0XCfuNCeAVBoCDW7A 因为TCP的三次握手等等原因,建立一个连接是一件成本比较高的行为。所以在一个需要多次与特定实体交互的程序中,就需要维持一个连接池,里面有可以复用的连接可供重复使用。 而维持一个连接池,最基本的要求就是要做到:thread safe(线程安全),尤其是在Golang这种特性是goroutine的语言中。 实现简单的连接池 type Pool

struct

{



packagist composer

Posted by 夏泽民

composer是现代PHP的基石 现代高级编程语言,依赖管理工具是必不可少的。Java有Maven,Python有pip,Nodejs有npm, 而在composer出现之前,PHP只有被广为诟病的Pear, 由于Pear实在太难用,很少PHP开发者用到这个工具。以致于PHP的开发生态很糟糕。



Search

Popular posts

Anything in here will be replaced on browsers that support the canvas element

Recent posts

This blog is maintained by 夏泽民

Get in touch with me at 465474307@qq.com

Subscribe to our mailing list

* indicates required