В самых последних потоках, которые я прочитал, говорится, что асинхронный - это лучший способ выполнить множество операций ввода-вывода, таких как отправка HTTP-запросов и тому подобное. Я недавно пытался выбрать асинхронный режим, но не могу понять, как отправлять множество групп запросов параллельно, например:
let client = reqwest::Client::new();
let mut requests = 0;
let get = client.get("https://somesite.com").send().await?;
let response = get.text().await?;
if response.contains("some stuff") {
let get = client.get("https://somesite.com/something").send().await?;
let response = get.text().await?;
if response.contains("some new stuff") {
requests += 1;
println!("Got response {}", requests)
Это делает то, что я хочу, но как я могу запустить его параллельно иконтролировать количество «рабочих потоков» или что-то эквивалентное пулу потоков в async?
Я понимаю, что это похоже на этот вопрос , но мой строго говорит о ночных Rustсинтаксис async / await и более конкретный вариант использования, где необходимо выполнить группы запросов / задач. Я также нахожу использование комбинаторов для таких ситуаций немного запутанным, надеясь, что более новый стиль поможет сделать его немного более читабельным.