workerman/http-client 是否需要手动关闭连接

wuheng

问题描述

担心服务器进程开太多,希望能控制进程数。
因为之前发生过 如下 的警告

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 需要手动关闭的信息
想证实一下

181 3 0
3个回答

nitron

http-client基于AsyncTcpConnection,至于是否需要手动关闭,看你的使用方式,看来下代码应该是不用

  • wuheng 2024-12-13

    我在项目里 用 AsyncTcpConnection 做异步http 请求,由于关闭连接代码没写好。
    导致 项目运行一段时间,就连不上了。控制台报 system call select exceeded the maximum number of connections 1024

  • nitron 2024-12-13

    select模型最高1024个连接

wuheng

个人感觉
所有依赖 Workerman 运行的插件或者功能组件,都会影响 Workerman的并发。
单纯使用 event/libevent 并不能从根解决问题。
所以要记得及时关闭 不必要的 Workerman 衍生的功能连接。比如 AsyncTcpConnection 。
workerman/http-client 是用来发送 http 连接的,应该是自己能够关闭连接。
老大在文档里说 没有暴露关闭连接的方法,所以应该不用处置。

  • 暂无评论
walkor 打赏

workerman/http-client 会自动关闭超过15秒不使用的连接,15秒是默认参数,通过 keepalive_timeout 参数更改。

  • 暂无评论
×
🔝