๐Ÿš€ Concurrent Processing

Execute multiple HTTP requests in parallel with controlled concurrency for maximum performance

Parallel Requests Demo

Fetch multiple jokes concurrently and see the time savings compared to sequential requests

๐Ÿ“Š Performance Comparison
Execution Method 5 Requests 10 Requests Benefit
Sequential (One at a time) ~1000ms ~2000ms -
Concurrent (Parallel) ~250ms ~400ms 75-80% faster! ๐Ÿš€

Actual times may vary based on network latency and API response times

๐Ÿ“ Code Example
Using Task.WhenAll for Concurrent Requests
// Define categories to fetch
var categories = new[] { "Programming", "Misc", "Dark", "Pun", "Spooky" };

// Create tasks for each request
var tasks = categories.Select(category =>
{
    var request = new HttpRequestResult<JokeResponse>
    {
        RequestPath = $"https://v2.jokeapi.dev/joke/{category}?safe-mode",
RequestMethod = HttpMethod.Get
    };
    return _requestResultService.HttpSendRequestResultAsync(request);
}).ToList();

// Execute all requests concurrently
var stopwatch = Stopwatch.StartNew();
var results = await Task.WhenAll(tasks);
stopwatch.Stop();

// Process results
var jokes = results
    .Where(r => r.IsSuccessStatusCode)
 .Select(r => r.ResponseResults)
    .ToList();

Console.WriteLine($"Fetched {jokes.Count} jokes in {stopwatch.ElapsedMilliseconds}ms");
Console.WriteLine($"Average time per request: {results.Average(r => r.RequestDurationMilliseconds)}ms");
Best Practices for Concurrent Requests
โœ… Do
  • Use for independent requests
  • Set appropriate timeouts
  • Handle partial failures gracefully
  • Monitor resource usage
  • Use cancellation tokens
โŒ Don't
  • Overwhelm the target API
  • Ignore rate limits
  • Use for dependent requests
  • Forget error handling
  • Ignore memory constraints
๐ŸŽฏ Common Use Cases
Perfect For:
  • Aggregating data from multiple APIs
  • Batch processing operations
  • Loading dashboard widgets
  • Parallel validation checks
  • Multi-source search queries
Real-World Examples:
  • E-commerce: Check inventory across stores
  • Travel: Compare prices from airlines
  • News: Fetch articles from sources
  • Weather: Get forecasts for cities
  • Social: Aggregate user feeds