public Task <IList <Message> > TryReceiveMessages(int maximumMessagesToReturn, bool waitIfQueueEmpty) => FailoverExceptions.Try( async() => { var operationTimeout = (detectFailureFast || !waitIfQueueEmpty) ? settings.ReadTimeout : settings.LongWaitReadTimeout; var results = await messageReceiver .ReceiveAsync(maximumMessagesToReturn, operationTimeout) .ConfigureAwait(false); if (results == null) { results = emptyList; } detectFailureFast = false; return(results); }, exception => { logger.LogWarning( exception, $"Exception waiting for messages using connection {connectionStringNumber}: {exception.Message}"); circuitBreakerLastTripped = DateTime.UtcNow; detectFailureFast = true; return(emptyList); });
public Task <Exception> TrySend(IList <Message> messages) => FailoverExceptions.Try( async() => { await topicClient.SendAsync(messages).ConfigureAwait(false); return(null); }, exception => { logger.LogWarning( exception, $"Exception sending messages using connection {connectionStringNumber}: {exception.Message}"); circuitBreakerLastTripped = DateTime.UtcNow; return(exception); });