internal AnalyticsSender(Uri endpoint, AnalyticsConfig config, AnalyticsEnvironment environment, string gcpKey, string eventSource, TimeSpan maxEventQueueDelta, int maxEventQueueSize, IDispatchExceptionStrategy dispatchExceptionStrategy, HttpClient httpClient) { _endpoint = endpoint; _config = config; _environment = environment; _gcpKey = gcpKey; _eventSource = eventSource; _maxEventQueueSize = maxEventQueueSize; _dispatchExceptionStrategy = dispatchExceptionStrategy; _httpClient = httpClient; Task.Factory.StartNew(async() => { while (true) { await DispatchEventQueue(); await Task.Delay(maxEventQueueDelta, _timedDispatchCancelTokenSrc.Token); } }, _timedDispatchCancelTokenSrc.Token, TaskCreationOptions.LongRunning, TaskScheduler.Default); }
/// <summary> /// Sets the strategy for handling HTTP exceptions during analytic dispatch. /// </summary> public AnalyticsSenderBuilder With(IDispatchExceptionStrategy strategy) { _dispatchExceptionStrategy = strategy ?? throw new ArgumentNullException(); return(this); }