public async Task DoWorkAsync(CancellationToken cancellationToken) { _logger.LogInformation("Starting snapshot collection"); try { var miners = await _minerService.GetEnabledMinersAsync(cancellationToken); foreach (var miner in miners.AsParallel()) { await GetSnapshotAsync(miner, cancellationToken); } } catch (Exception ex) { _logger.LogError(ex, "Error collecting snapshots"); } _logger.LogInformation("Finished snapshot collection"); }