public DefaultHttpProxyClientFactory( IHttpProxyDefinitionFactory definitionFactory, IHttpProxyFactory httpProxyFactory, IHttpProxyLoggerFactory loggerFactory, IHttpProxyFeatureProvider <IHttpProxyRotationFeature> rotationFeatureProvider, IHttpProxyFeatureProvider <IHttpProxyHealthCheckFeature> healthCheckFeatureProvider, IHttpProxyFeatureProvider <IHttpProxyRefill> proxyRefillFeatureProvider, IOptionsMonitor <HttpProxyClientFactoryOptions> optionsMonitor) { _loggerFactory = loggerFactory; _rotationFeatureProvider = rotationFeatureProvider; _healthCheckFeatureProvider = healthCheckFeatureProvider; _optionsMonitor = optionsMonitor; _proxyRefillFeatureProvider = proxyRefillFeatureProvider; _definitionFactory = definitionFactory; _httpProxyFactory = httpProxyFactory; _logger = loggerFactory.CreateLogger(typeof(DefaultHttpProxyClientFactory)); _clientStates = new ConcurrentDictionary <string, Lazy <HttpProxyClientState> >( StringComparer.InvariantCultureIgnoreCase); _lastAcquiredProxies = new ConcurrentDictionary <string, IHttpProxy>(StringComparer.InvariantCultureIgnoreCase); _deadHandlers = new ConcurrentQueue <DeadHandlerReference>(); _cleanupActivity = new HandlersCleanupActivity(DefaultCleanupPeriod, _deadHandlers, loggerFactory); _proxyDefinitions = new HashSet <HttpProxyDefinition>(); }
public HandlersCleanupActivity( TimeSpan period, ConcurrentQueue <DeadHandlerReference> handlers, IHttpProxyLoggerFactory loggerFactory) : base(period, loggerFactory.CreateLogger(typeof(HandlersCleanupActivity))) { _handlers = handlers; }
public ProxyHealthCheckActivity( TimeSpan period, IHttpProxyLoggerFactory loggerFactory, IHttpProxyHealthCheckFeature healthCheck, Func <HttpProxyHandlerState, bool> removeHandler, Func <IReadOnlyCollection <HttpProxyHandlerState> > handlerAccessor, Action <DeadHandlerReference> deadHandlerInsertion) : base(period, period, loggerFactory.CreateLogger(typeof(ProxyHealthCheckActivity))) { _healthCheck = healthCheck; _removeHandler = removeHandler; _handlerAccessor = handlerAccessor; _deadHandlerInsertion = deadHandlerInsertion; }
public ProxyRefillActivity( TimeSpan period, HttpProxyClientFactoryOptions options, IHttpProxyLoggerFactory loggerFactory, Func <IReadOnlyCollection <IHttpProxy> > aliveProxyAccessor, Action <IHttpProxy> proxyInsertCallback, IHttpProxyRefill proxyRefill, IHttpProxyFactory proxyFactory) : base(period, period, loggerFactory.CreateLogger(typeof(ProxyRefillActivity))) { _options = options; _aliveProxyAccessor = aliveProxyAccessor; _proxyInsertCallback = proxyInsertCallback; _proxyRefill = proxyRefill; _proxyFactory = proxyFactory; }
internal HttpProxyClient(HttpProxyHandlerState state, IHttpProxyLoggerFactory loggerFactory) : base(state.Handler, disposeHandler: false) { _httpProxyState = new WeakReference <HttpProxyState>(state.ProxyState); _logger = loggerFactory.CreateLogger($"{nameof(HttpProxyClient)}"); }