예제 #1
0
        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));
     }));
 }