gpt4 book ai didi

delphi - IdHTTP服务器 : Share ADOConnection

转载 作者:行者123 更新时间:2023-12-03 02:58:23 24 4
gpt4 key购买 nike

我正在使用TIdHTTPServer创建一个简单的Indy网络服务器。几乎所有请求服务器都需要与数据库通信(通过TAdoConnection)。看到数据库连接在资源方面有点昂贵,我想创建一个池机制来重用连接;而不是在每个请求上建立连接。

我没有成功地搜索示例。 This Link Embarcadero 讨论论坛建议对 TIdSchedulerOfThreadPoolTIdThreadWithTask 的后代进行子类化。但我仍然无法把它们整合在一起。

我是否需要重写TIdSchedulerOfThreadPool.NewThread方法并让它返回我的子类TIdThreadWithTask对象,而该对象又将拥有自己的TAdoConnection强>对象?

有人有例子吗?我是否应该不担心这一点,只在每个请求上打开数据库连接?

最佳答案

你为什么不自己管理池呢?

您有一个联系人列表。它开始是空的。每次请求到来时,您都会查找可用连接(处于事件状态但未使用的连接)。如果没有找到,则创建一个并将其放入列表中,因为不可用。请求结束后,您将连接设置为可用。

去过那里,做过那件事,一点也不后悔!几个值得关注的点:

  • 始终牢记线程安全:
    • 当您查询列表时
    • 当您查询连接的可用性时
    • 当您设置连接的可用性时
  • 时常检查是否有太多未使用的可用连接,数量可能超出您的需要,因此必须将它们设置为不可用,从列表中删除,然后关闭。

关于delphi - IdHTTP服务器 : Share ADOConnection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7446936/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com