예제 #1
0
        private static void Validate(this ISerializationConfigProfile config)
        {
            if (config.Type != SerializationType.AtGivenTime)
            {
                return;
            }
            config.Hour.ThrowWhenNotInRange(0, 23,
                                            $"For key:{config.Key},{nameof(ISerializationConfigProfile)}.{nameof(config.Hour)}");

            config.Minute.ThrowWhenNotInRange(0, 59,
                                              $"For key:{config.Key},{nameof(ISerializationConfigProfile)}.{nameof(config.Minute)}");
        }
 public ScheduledSerializer(ISerializationConfigProfile config, ILog logger,
                            string cacheName)
 {
     if (config.Type != SerializationType.AtGivenTime)
     {
         throw new AsyncCacheException(AsyncCacheErrorCode.InvalidImplementation,
                                       $"{nameof(ScheduledSerializer)} supports only {SerializationType.AtGivenTime} option." +
                                       $"Supplied type is {config.Type}");
     }
     _config     = config;
     _logger     = logger;
     _localCts   = new CancellationTokenSource();
     _token      = _localCts.Token;
     _cacheName  = cacheName;
     _reloadTask = BeginSerializing();
 }