Esempio n. 1
0
        /// <summary>
        /// Получить, является ли текущая попытка обработки последней.
        /// </summary>
        /// <param name="properties">Метаданные сообщения.</param>
        /// <param name="retrySettings">Настройки повтора подписчика.</param>
        /// <param name="retryCount">Количество повторных попыток.</param>
        /// <returns>Признак попытки последней обработки.</returns>
        internal static bool IsLastRetry(
            this IBasicProperties properties,
            RetrySettings retrySettings,
            out int retryCount
            )
        {
            retryCount = properties.GetRetryNumber();

            if (!retrySettings.IsEnabled)
            {
                return(true);
            }

            if (retrySettings.DoInfinityRetries)
            {
                return(false);
            }

            return(retryCount >= retrySettings.RetryCount);
        }
Esempio n. 2
0
 /// <summary>
 /// Установить счетчик повторных обработок.
 /// </summary>
 /// <param name="properties">Свойства сообщения.</param>
 /// <param name="retryCount">Счетчик повторных обработок.</param>
 internal static void IncrementRetryCount(this IBasicProperties properties, int retryCount)
 {
     properties.Headers ??= new Dictionary <string, object>();
     properties.Headers[RETRY_NUMBER_KEY] = properties.GetRetryNumber() + retryCount;
 }