take take Request主体与
serde_json
图书馆
N
library将此机构置于另一个
reqwest
docker stats
)
如果有人对如何解决这个问题有任何想法,我会非常感谢。UPD:代码示例
pub async fn handler(data: Json<Value>) {
let data = data.take().to_string();
for url in urls {
match Client::new().post(url)
.header("Content-Type", "application/json")
.body(data)
.send().await{
...
}
}
}
我们以前曾在生产中遇到过这个问题。我们正在使用
reqwest::get()
,但是问题是相同的:您每个请求都创建一个客户端。连接重复使用/合并发生在客户端级别,因此,如果您为每个请求创建客户端,则无法重复使用连接。这导致:
所有高架都足以在非常忙碌时将我们的一项服务带到膝盖上。
解决方案是创建一个single并分享它。 请注意,在内部,客户拥有池的所有权。这意味着您可以廉价地客户,所有克隆都将共享相同的连接池。
reqwest::Client
拥有客户:
.clone()