delphi - TIdTCPClient 连接池
问题描述
我想TIdTCPClient
用 Delphi 和TWebModule
.
目前在创建 WebModule 时,我创建了一个新的TIdTCPClient
并连接到 Redis,例如:
procedure TWebService.WebModuleCreate(Sender: TObject);-
begin
FClient := TIdTCPClient.Create();
FClient.Connect('REDIS_HOST', 6379);
end;
在 web 模块销毁时,我断开连接并释放资源,例如:
procedure TWebService.WebModuleDestroy(Sender: TObject);
begin
FClient.Disconnect;
FClient.Free;
end;
一切正常......但是这样我在每个新请求上都创建了一个新连接,并且在很长一段时间后,TIME_WAIT
套接字的数量越来越多。
我想实现一个全局连接池,始终打开固定数量的连接(例如:50)并仅使用这些连接池。
Indy 有什么东西可以管理 TCP 连接池吗?
解决方案
不,Indy 不提供任何用于池化 TCP 连接的功能。TIdTCPClient
您必须在自己的代码中实现自己的对象池。
推荐阅读
- python - Quandl 时间序列与 Pandas 的相关性
- jquery - 从一个文件夹加载所有图像
- python - Python - 嵌套在地图内的过滤器会产生意外的输出
- python - 从二进制数据创建动画的快速方法
- visual-studio-code - 如何在 VS 代码中读取 .ipynb
- flutter - 根据条件在列表中显示小部件的漂亮方式
- javascript - 使用 require(…/) 方法绑定 img src 时如何修复控制台日志错误?
- flutter - 如何更改flutter_svg图像的宽度?
- sql - 如何为 SQL 构建动态 where 子句
- html - 使用 Github 页面发布前端 html 网站所需的帮助