当前位置: 首页 > 知识库问答 >
问题:

如何从环形web应用程序使用'clj http'连接池?

云季萌
2023-03-14

我使用clojure web应用程序作为代理web服务器。

我的所有请求都进入这个clojure ring web应用程序,然后我使用clj http将请求发送到最终目的地。

因此,到目前为止,我将此作为一个简单的解决方案,只需为每个请求调用cljhttp/request。这段代码与我正在做的非常相似。

但这还不够好,因为每次发出请求时,都会初始化一个新的http客户端。我需要连接池,以便正确地重用http客户端。

关于持久连接的clj http文档指出,您可以像这样重复使用连接:

(with-connection-pool {:timeout 5 :threads 4 :insecure? false :default-per-route 10}
  (get "http://example.org/1")
  (post "http://example.org/2")
  (get "http://example.org/3")
  ...
  (get "http://example.org/999"))

也许我只是还不够好与Clojure,但如何有人包围所有的请求进入https://github.com/tailrecursion/ring-proxy/blob/master/src/tailrecursion/ring_proxy.clj#L40与此连接池?

共有1个答案

慕容嘉熙
2023-03-14

实现一个中间件,将连接管理器添加到请求映射中。

您需要自己处理连接管理器的生命周期,而不是使用-form-请参阅CLJHTTP文档关于持久连接的最后一部分。

 类似资料:
  • 我的应用程序是用Flatter和Firebase RTDB(数据库1)开发的。它是为IOS和Android构建的。 我有一个使用JS和Firebase RTDB(数据库2)开发的辅助应用程序。它是为Web创建的。 现在,我想从我的Flatter应用程序中写入数据库2。我应该一步一步地做什么? 我尝试使用以下方法应用添加多个项目: 但我不确定这是否是一个安全的过程,我不知道如何调用辅助数据库实例..

  • 我正在使用带有MongoDB的Node-MongoDB本机驱动程序来编写一个网站。 我有一些关于如何管理连接的问题: > 对所有请求只使用一个MongoDB连接是否足够?是否存在性能问题?如果不是,我可以设置一个全局连接在整个应用程序中使用吗? 如果不是,如果我在请求到达时打开一个新的连接,并且在处理请求时关闭它,这是好的吗?打开和关闭一个连接是否昂贵? 我应该使用全局连接池吗?我听说驱动程序有一

  • 问题内容: 我在MongoDB中使用node-mongodb-native驱动程序来编写网站。 我对如何管理连接有一些疑问: 仅使用一个MongoDB连接就可以处理所有请求是否足够?是否存在性能问题?如果没有,是否可以设置全局连接以在整个应用程序中使用? 如果没有,如果在请求到达时打开一个新连接,并在处理请求时将其关闭,那会很好吗?打开和关闭连接是否昂贵? 我应该使用全局连接池吗?我听说驱动程序具

  • 我有一个Angular project web app,在我使用“ng build…”构建它之后,它正在Apache web服务器中成功运行命令现在,我想让它成为Android应用程序,为此,我尝试使用Cordova。首先,我创建了一个Cordova项目,然后在www目录下,我放置了来自NG的文件。是的,在那之前我还使用了Cordova平台add android。但是,当我在模拟器或真实设备上安装

  • 我在PHP8中有Azure web应用程序,希望从php代码连接到Oracle数据库12C。从文档中,我发现下面的博客说我们需要Oracle Instant Client,但我没有找到安装步骤。在这个博客中,他们提到php版本高达5.6,但我使用的是PHP8版本。 https://docs.microsoft.com/en-us/archive/blogs/azureossds/access-or

  • 免责声明:我知道人们通常不会这样做,我使用SQL数据库是出于成本原因,而且我对编程比较陌生。 我正在尝试从我的Android Studio应用程序向我的MariaDB数据库发送SQL脚本。我目前正在为MariaDB实现一个Java数据库连接(JDBC)驱动程序,但我不确定需要包括什么。 我去了JDBC MariaDB驱动程序的下载网站,但是有很多jar文件,我可以选择下载。你怎么知道你需要哪一个,