async Task SafeDispatch(DelayedMessageEntity delayedMessage, CancellationToken cancellationToken) { var operation = delayedMessage.GetOperation(); try { await dispatcher.Send(operation, cancellationToken).ConfigureAwait(false); } catch (Exception) { // if send fails for any reason await dispatcher.Send(CreateOperationForErrorQueue(operation), cancellationToken).ConfigureAwait(false); } }
async Task SafeDispatch(DelayedMessageEntity delayedMessage, CancellationToken cancellationToken) { if (Logger.IsDebugEnabled) { Logger.DebugFormat("Dispatching delayed message ID: '{0}'", delayedMessage.MessageId); } var operation = delayedMessage.GetOperation(); try { await dispatcher.Send(operation, cancellationToken).ConfigureAwait(false); } catch (Exception ex) when(!ex.IsCausedBy(cancellationToken)) { // if send fails for any reason Logger.Warn($"Failed to send the delayed message with PartitionKey:'{delayedMessage.PartitionKey}' RowKey: '{delayedMessage.RowKey}' message ID: '{delayedMessage.MessageId}'", ex); await dispatcher.Send(CreateOperationForErrorQueue(operation), cancellationToken).ConfigureAwait(false); } }