private void Disconnect() { lock (_syncObject) { _connectionHandler.Disconnect(); } }
public void SendXyz_ConnectionHandler_DisconnectAndConnectAreCalled_ForCertainHttpStatusCodes(HttpStatusCode statusCode) { _connectionManager = new ConnectionManager(_connectionHandler, _scheduler); _disposableCollection.Add(_dataTransportService = new DataTransportService(_connectionManager, _dateTimeStatic, _agentHealthReporter)); Mock.Arrange(() => _connectionHandler.SendDataRequest <object>(Arg.IsAny <string>(), Arg.IsAny <object[]>())) .Throws(new HttpException(statusCode, null)); _dataTransportService.Send(Arg.IsAny <EventHarvestData>(), Enumerable.Empty <TransactionEventWireModel>()); Mock.Assert(() => _connectionHandler.Disconnect(), Occurs.Once()); Mock.Assert(() => _connectionHandler.Connect(), Occurs.Once()); }
public void Execute(Action callback) { _connectionHandler.Disconnect(); if (_reconnectDelay > TimeSpan.Zero) { Thread.Sleep(_reconnectDelay); } _connectionHandler.Connect(); _policyChain.Pop(this); _policyChain.Next(callback); }
void Reconnect() { if (_connectionLock.TryEnterWriteLock((int)_reconnectDelay.TotalMilliseconds / 2)) { try { if (_log.IsDebugEnabled) { _log.Debug("Disconnecting connection handler."); } _connectionHandler.Disconnect(); if (_reconnectDelay > TimeSpan.Zero) { Thread.Sleep(_reconnectDelay); } if (_log.IsDebugEnabled) { _log.Debug("Re-connecting connection handler..."); } _connectionHandler.Connect(); } catch (Exception) { _log.Warn("Failed to reconnect, deferring to connection policy for reconnection"); _connectionHandler.ForceReconnect(_reconnectDelay); } finally { _connectionLock.ExitWriteLock(); } } else { try { _connectionLock.EnterReadLock(); if (_log.IsDebugEnabled) { _log.Debug("Waiting for reconnect in another thread."); } } finally { _connectionLock.ExitReadLock(); } } }
public async void Disconnect() { await connectionHandler.Disconnect(this); //label1.Text = "Disconnected"; }