/// <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); }
/// <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; }