public static async Task RetryMessageAsync()

in src/Services/Notification/Notification.FnApp/Services/RetryHandler.cs [39:82]


        public static async Task<bool> RetryMessageAsync(
            Message message,
            Exception exception,
            MessageReceiver messageReceiver,
            RetryPolicyOptions policyOptions,
            ILogger logger)
        {
            logger.LogInformation($"Calling retry handler... DeliveryCount: {message.SystemProperties.DeliveryCount}");

            RetryPolicyOptions policy = policyOptions;

            if (exception is BadMessageException ||
                exception is ApplicationException ||
                exception is NotSupportedException)
            {
                // Business errors policy
                // Move message to dead letter queue
                await messageReceiver.DeadLetterAsync(
                    message.SystemProperties.LockToken,
                    "Application error",
                    exception.Message);

                logger.LogInformation("RetryHandler: Application error. Message moved to dead letter queue.");

                return true;
            }

            // Check message delivery count against policy
            if (message.SystemProperties.DeliveryCount >= policy?.MaxRetryCount)
            {
                // Move message to dead letter queue
                await messageReceiver.DeadLetterAsync(
                    message.SystemProperties.LockToken,
                    "Exceeded max retry policy",
                    exception.Message);

                logger.LogInformation(
                    $"RetryHandler: Max delivery attempts {message.SystemProperties.DeliveryCount} exceeded. Message moved to dead letter queue");

                return true;
            }

            return false;
        }