担心服务器进程开太多,希望能控制进程数。
因为之前发生过 如下 的警告
Warning: system call select exceeded the maximum number of connections 1024, please install event/libevent extension for more connections.
已知安装 event 可以极大增加 Workerman 对并发的控制能力。
但是浪费服务器资源性能是可耻行为。
目前已知在 Workerman 里使用 AsyncTcpConnection 不手动关闭请求,会影响 Workerman 的并发能力。
翻遍文档没发现 workerman/http-client 需要手动关闭的信息
想证实一下
http-client基于AsyncTcpConnection,至于是否需要手动关闭,看你的使用方式,看来下代码应该是不用
我在项目里 用 AsyncTcpConnection 做异步http 请求,由于关闭连接代码没写好。
导致 项目运行一段时间,就连不上了。控制台报 system call select exceeded the maximum number of connections 1024
select模型最高1024个连接
个人感觉
所有依赖 Workerman 运行的插件或者功能组件,都会影响 Workerman的并发。
单纯使用 event/libevent 并不能从根解决问题。
所以要记得及时关闭 不必要的 Workerman 衍生的功能连接。比如 AsyncTcpConnection 。
workerman/http-client 是用来发送 http 连接的,应该是自己能够关闭连接。
老大在文档里说 没有暴露关闭连接的方法,所以应该不用处置。
workerman/http-client 会自动关闭超过15秒不使用的连接,15秒是默认参数,通过 keepalive_timeout 参数更改。