Esempio n. 1
0
        private void groupMessages(Envelope[] messages)
        {
            var groups = messages.GroupBy(x => x.Destination);

            foreach (var @group in groups)
            {
                var batch = new OutgoingMessageBatch(@group.Key, @group);
                _sender.Post(batch);
            }
        }
Esempio n. 2
0
 private async Task sendBatch(OutgoingMessageBatch batch)
 {
     try
     {
         await _protocol.SendBatch(_callback, batch);
     }
     catch (Exception e)
     {
         batchSendFailed(batch, e);
     }
 }
Esempio n. 3
0
        public async Task SendBatch(ISenderCallback callback, OutgoingMessageBatch batch)
        {
            using (var client = new TcpClient())
            {
                await connect(client, batch.Destination)
                .TimeoutAfter(5000);

                using (var stream = client.GetStream())
                {
                    await WireProtocol.Send(stream, batch, callback).TimeoutAfter(5000);
                }
            }
        }
Esempio n. 4
0
 void ISenderCallback.TimedOut(OutgoingMessageBatch outgoing)
 {
     processRetry(outgoing);
 }
Esempio n. 5
0
 void ISenderCallback.Successful(OutgoingMessageBatch outgoing)
 {
     Persistence.RemoveOutgoing(outgoing.Messages);
 }
Esempio n. 6
0
 void ISenderCallback.ProcessingFailure(OutgoingMessageBatch outgoing, Exception exception)
 {
     processRetry(outgoing);
 }
Esempio n. 7
0
 void ISenderCallback.QueueDoesNotExist(OutgoingMessageBatch outgoing)
 {
     processRetry(outgoing);
 }
Esempio n. 8
0
 void ISenderCallback.SerializationFailure(OutgoingMessageBatch outgoing)
 {
     processRetry(outgoing);
 }
Esempio n. 9
0
 private void batchSendFailed(OutgoingMessageBatch batch, Exception exception)
 {
     _callback.ProcessingFailure(batch, exception);
 }
Esempio n. 10
0
 public void PersistBasedOnSentAttempts(OutgoingMessageBatch batch, int maxAttempts)
 {
 }