コード例 #1
0
 public AutoScalingChannelPool(IChannelFactory factory, AutoScalingOptions options)
 {
     _factory = factory;
     _options = options;
     ValidateOptions(options);
     SetupScaling();
 }
コード例 #2
0
 private static void ValidateOptions(AutoScalingOptions options)
 {
     if (options.MinimunPoolSize <= 0)
     {
         throw new ArgumentException($"Minimum Pool Size needs to be a positive integer. Got: {options.MinimunPoolSize}");
     }
     if (options.MaximumPoolSize <= 0)
     {
         throw new ArgumentException($"Maximum Pool Size needs to be a positive integer. Got: {options.MinimunPoolSize}");
     }
     if (options.MinimunPoolSize > options.MaximumPoolSize)
     {
         throw new ArgumentException($"The Maximum Pool Size ({options.MaximumPoolSize}) must be larger than the Minimum Pool Size ({options.MinimunPoolSize})");
     }
 }
コード例 #3
0
 public AutoScalingChannelPoolFactory(IChannelFactory factory, AutoScalingOptions options = null)
 {
     _factory      = factory;
     _options      = options ?? AutoScalingOptions.Default;
     _channelPools = new ConcurrentDictionary <string, Lazy <IChannelPool> >();
 }