3 ms·
How do you set the concurrency limit? I'm down to use your framework (thanks!), just curious how you implement it. I couldn't get Stream::buffered to work corre
by singhrac 6y ago
How do you set the concurrency limit? I'm down to use your framework (thanks!), just curious how you implement it. I couldn't get Stream::buffered to work correctly.
- Matthias247 6y agoYou can use `Futures::StreamExt::buffer_unordered` for this. [1] is an example where I used it for benchmark which creates a certain amount of QUIC connections at a time. But you can also spawn all tasks upfront via `tokio::spawn`, and let them wait on a `tokio::sync::Semaphore` before making the request. The drawback of this is that you might allocate more memory for tasks upfront - but if you don't have an extremely high number it might not matter. [1] https://github.com/quinn-rs/quinn/blob/de627437bc7d836564c3666c8d2885110b74833d/bench/src/bulk.rs#L105-L124 https://github.com/quinn-rs/quinn/blob/de627437bc7d836564c36...
- singhrac 6y agoThis is a late comment, but this helped me out a lot. Thank you for the detailed explanation and code example, I appreciate it.