private async Task ProcessRequest(Level1Request request) { if (!request.Online) { return; } if (!request.HasExpired()) { Logger.Info("Not expired level 1 request for Symbol: {0}... ({1}), Until next expiration: {2} ms", request.Symbol, _level1RequestQueue.InputCount, request.UntilExpiration.TotalMilliseconds); request.Signal(); return; } // make a market request Logger.Info("Requesting level 1 for Symbol: {0}... ({1})", request.Symbol, _level1RequestQueue.InputCount); var level1MarketData = await _marketDataProvider.GetLevel1MarketDataAsync(request.Symbol); request.Signal(); // persist the data _level1MarketDataService.PersistLevel1MarketData(level1MarketData); }