コード例 #1
0
        protected override async Task ExecuteAsync()
        {
            var sw = new Stopwatch();

            sw.Start();

            var channelStats = await _statQuery.GetChannelStatsAsync();

            var statDto = new MiningStatDto
            {
                ChannelStats = channelStats?.ToDictionary(x => x.Channel.ToLower()),
                SupplyRate   = await _nexusQuery.GetSupplyRate()
            };

            var diffs = channelStats?.ToDictionary(x => x.Channel.ToLower(), y => y.Difficulty);

            await _redisCommand.SetAsync(Settings.Redis.SupplyRatesLatest, statDto.SupplyRate);

            await _redisCommand.SetAsync(Settings.Redis.ChannelStatsLatest, statDto.ChannelStats);

            await _redisCommand.SetAsync(Settings.Redis.DifficultyStatPubSub, diffs);

            await _redisCommand.PublishAsync(Settings.Redis.MiningStatPubSub, statDto);

            await _redisCommand.PublishAsync(Settings.Redis.DifficultyStatPubSub, diffs);

            sw.Stop();
            Logger.LogInformation($"Mining stats job completed in {sw.Elapsed:c}");
        }
コード例 #2
0
 private Task OnStatPublishAsync(MiningStatDto miningStatDto)
 {
     return(_miningContext.Clients.All.SendAsync("StatPublish", Helpers.JsonSerialise(miningStatDto)));
 }