Example #1
0
        private async Task GetSnapshotAsync(Miner miner, CancellationToken token)
        {
            _logger.LogInformation($"Getting statistics for {miner.Name}");
            try
            {
                var client = _clientFactory.Create(miner);

                var sw = Stopwatch.StartNew();
                var minerStatistics = await client.GetStatisticsAsync();

                sw.Stop();

                await _snapshotService.AddAsync(new Snapshot
                {
                    MinerId = miner.Id,
                    RetrievalElapsedTime = sw.Elapsed,
                    SnapshotTime         = DateTime.UtcNow,
                    MinerStatistics      = minerStatistics
                }, token);

                _logger.LogInformation($"Saved statistics for {miner.Name} in {sw.ElapsedMilliseconds}ms");
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, $"Error getting statistics for miner {miner.Name}");
            }
        }