diff options
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 35 |
1 files changed, 30 insertions, 5 deletions
diff --git a/src/main.rs b/src/main.rs index 56a94a7..114d218 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,15 +1,40 @@ -use std::ffi::OsString; use clap::Parser; -fn main() { +#[tokio::main] +async fn main() -> anyhow::Result<()> { let args = Args::parse(); - for url in args.urls { - println!("{:?}", url); + let mut i = 0; + let mut handles = vec![]; + while i < args.n { + let url = args.url.clone(); + let x = tokio::spawn(async move { get(&url).await }); + handles.push(x); + i += 1; } + println!("{} handles", handles.len()); + for h in handles { + let r = h.await?; + if !r.status().is_success() { + println!("{:?} {}", args.url, r.status()); + } + } + println!("OK"); + Ok(()) } #[derive(Parser)] struct Args { #[clap()] - urls: Vec<OsString>, + n: usize, + + #[clap()] + url: String, +} + +async fn get(url: &str) -> reqwest::Response { + loop { + if let Ok(r) = reqwest::get(url).await { + return r; + } + } } |