Esempio n. 1
0
        /// <summary>
        /// Установить информацию о повторной обработке в текущий скоуп логгера.
        /// </summary>
        /// <param name="properties">Метаданные сообщения.</param>
        /// <param name="subscriberSettings">Настройки повтора подписчика.</param>
        /// <param name="loggingScope">Скоуп.</param>
        /// <returns>Номер повторной попытки, признак попытки последней обработки.</returns>
        internal static (int retryNumber, bool isLastRetry) EnsureRetryInfo(
            this IBasicProperties properties,
            RetrySettings subscriberSettings,
            Dictionary <string, object?> loggingScope
            )
        {
            var isLastRetry = properties.IsLastRetry(subscriberSettings, out var retryCount);

            loggingScope["RetryNumber"] = retryCount;

            if (isLastRetry)
            {
                loggingScope["IsLastRetry"] = true;
            }

            return(retryCount, isLastRetry);
        }