protected override async Task ExecuteAsync(CancellationToken stoppingToken) { while (!stoppingToken.IsCancellationRequested) { if (OrderBookHub.Connections.Count > 0) { try { var orderBook = await _cryptoProvider.GetOrderBook(_config.Ticker, _config.PriceRangeLimitPercantage); orderBook.Ticker = _config.Ticker; if (_config.LogDb) { StoreOrderBook(orderBook); } var orderBookBroadcast = new OrderBookBroadcast(orderBook); await _orderBookHub.Clients.All.BroadcastOrderBook(orderBookBroadcast); } catch (Exception ex) { Console.WriteLine("Error in CryptoProviderBackgroundService.ExecuteAsync:" + ex.ToString()); } } else { Console.WriteLine("There are no clients connected."); } await Task.Delay(_config.IntervalInMs); } }