public async Task DoWorkAsync(CancellationToken stoppingToken) { while (!stoppingToken.IsCancellationRequested) { //var image = _restClient.GetFile(fileName); var files = _restClient.GetDefaultFiles(); if (files != null) { foreach (string fileName in files) { var image = _restClient.GetFile(fileName); if (image != null) { //var cashKey = $"image_{DateTime.UtcNow:yyy_MM_dd}"; var cashKey = _creator.GetKey(fileName); var entryOptions = new MemoryCacheEntryOptions() { AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(_option.Value.ExpirationTimeValueInMinutes) }; _cash.Set(cashKey, image, entryOptions); } } } await Task.Delay(TimeSpan.FromMinutes(_option.Value.ScanningPeriodInMinutes)); } }