public Task CleanUpNonces() { if (_lastCleanUp.Add(_settings.ExpiredNoncesCleanUpInterval) > _systemClock.UtcNow) { return(Task.CompletedTask); } _backgroundTaskStarter.Start(RunCleanUp, TimeSpan.FromSeconds(5)); return(Task.CompletedTask); }
private MemoryCacheEntryOptions BuildEntryOptions() { return(new MemoryCacheEntryOptions() .SetAbsoluteExpiration(_expiration) .RegisterPostEvictionCallback((key, value, reason, state) => { var evictedClient = value as Client; _backgroundTaskStarter.Start(() => { evictedClient?.Dispose(); return Task.CompletedTask; }, TimeSpan.FromSeconds(5)); })); }