gpt4 book ai didi

concurrency - V-lang : How to send +2500 HTTP requests per second?

转载 作者:行者123 更新时间:2023-12-04 15:16:52 25 4
gpt4 key购买 nike

我打算用 V 编写我的抓取器,我估计需要每秒发送约 2500 个请求,但无法弄清楚我做错了什么,它应该同时发送,但现在速度非常慢。感觉我做错了什么,但我想不通。

import net.http
import sync
import time

fn send_request(mut wg sync.WaitGroup) ?string {
start := time.ticks()
data := http.get('https://google.com')?
finish := time.ticks()
println('Finish getting time ${finish - start} ms')
wg.done()
return data.text
}



fn main() {
mut wg := sync.new_waitgroup()
for i := 0; i < 50; i++ {
wg.add(1)
go send_request(mut wg)
}
wg.wait()
}

输出:

...
Finish getting time 2157 ms
Finish getting time 2173 ms
Finish getting time 2174 ms
Finish getting time 2200 ms
Finish getting time 2225 ms
Finish getting time 2380 ms
Finish getting time 2678 ms
Finish getting time 2770 ms

V 版本:0.1.29

系统:Ubuntu 20.04

最佳答案

你没有做错任何事。我以多种方式在多种语言中获得了相似的结果。许多站点都有速率限制软件来防止像这样的重复读取,这就是您遇到的问题。

现在您可以尝试使用 channel ,但您仍然会遇到速率限制器。

关于concurrency - V-lang : How to send +2500 HTTP requests per second?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64163418/

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