private void SendAmqpMessage(Message m) { bool firstTry = true; ReliableSender rl = _senders.PickSender( ); while (true) { try { rl.Sender.Send(m, SendOutcome, rl); break; } catch (Exception ex) { Logger.LogError("Exception on send" + ex.Message); if (firstTry) { firstTry = false; rl.SetDead( ); } else { // re-trhrow the exception if we already re-tried throw; } } } }
public async Task SenderCatchesAndRethrowsAS4Exception_IfNotifyMesage() { // Arrange var sut = new ReliableSender(notifySender: new SaboteurSender()); // Act SendResult r = await sut.SendAsync(DummyNotifyMessage()); // Assert Assert.Equal(SendResult.FatalFail, r); }
public void SenderDelegatesConfiguration_IfNotifySender() { // Arrange var stubSender = new SpySender(); var sut = new ReliableSender(notifySender: stubSender); // Act sut.Configure(method: null); // Assert Assert.True(stubSender.IsConfigured); }
//--// public SendersPool(string amqpAddress, string eventHubName, int size, ILogger logger) { _logger = logger; if (size > MAX_POOL_SIZE) { size = MAX_POOL_SIZE; } _pool = new ReliableSender[size]; for (int i = 0; i < size; ++i) { _pool[i] = new ReliableSender(amqpAddress, eventHubName, logger); } _current = 0; }