private void ImportEveMarketData(MarketDataImport jobData) { Client.DefaultRequestHeaders.Accept.Clear(); Client.DefaultRequestHeaders.Add("Accept", "application/json"); var expiry = TimeSpan.FromSeconds(60); var wait = TimeSpan.FromSeconds(60); var retry = TimeSpan.FromSeconds(1); foreach (var id in jobData.MarketTypeIds) { var key = $"ImportMarketData-{jobData.RegionId}-{id}"; using (var distLock = this.DistributedLockRepository.AcquireLock(key, expiry, wait, retry)) { if (distLock.IsAcquired) { var cacheKey = $"Refresh:{key}"; if (this.DistributedKeyValueRepository.Retrieve(cacheKey) != null) { this.AddMessage($"Cache indicates data for region {jobData.RegionId} item {id} fetched recently; skipping."); } else { this.ImportMarketDataForEveType(jobData.RegionId, id); this.DistributedKeyValueRepository.Persist(cacheKey, key, TimeSpan.FromSeconds(300)); } } else { throw new ArgumentException("TEMP: Could not acquire redis lock."); } } } }
private void ImportEveMarketData(MarketDataImport jobData) { Client.DefaultRequestHeaders.Accept.Clear(); Client.DefaultRequestHeaders.Add("Accept", "application/json"); this.marketOrderCol = this.DbFactory.GetCollection <MarketOrder>(CollectionNames.MarketOrders); foreach (var id in jobData.MarketTypeIds) { this.ImportMarketDataForEveType(jobData.RegionId, id); } }