api_key_pool/
api-key-pool.rs1use chrono::Duration;
2use tokio::time;
3
4use api_key_pool::*;
5
6#[tokio::main]
7async fn main() {
8 let pol = RateLimitPolicy::new(1, Duration::seconds(2));
12
13 let api1 = APIKey::new("1", pol);
15 let api2 = APIKey::new("2", pol);
16 let api3 = APIKey::new("3", pol);
17
18 let mut pool = APIKeyPool::new();
20 pool.add_key(api1).await;
21 pool.add_key(api2).await;
22 pool.add_key(api3).await;
23
24 let mut ctr = 0;
26 while ctr < 20 {
27 if let Some(key) = pool.poll_for_key().await {
29 println!("{}", key);
30 ctr += 1;
31 } else {
32 println!("Have to sleep.");
33 time::sleep(time::Duration::from_millis(500)).await;
34 }
35 }
36}