RetryPolicyAttribute.cs 929 Bytes
using NCC.Dependency;
using System;

namespace NCC.RemoteRequest
{
    /// <summary>
    /// 配置请求失败重试策略
    /// </summary>
    [SuppressSniffer, AttributeUsage(AttributeTargets.Interface | AttributeTargets.Method)]
    public class RetryPolicyAttribute : Attribute
    {
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="numRetries"></param>
        /// <param name="retryTimeout">每次延迟时间(毫秒)</param>
        public RetryPolicyAttribute(int numRetries, int retryTimeout = 1000)
        {
            NumRetries = numRetries;
            RetryTimeout = retryTimeout;
        }

        /// <summary>
        /// 重试次数
        /// </summary>
        public int NumRetries { get; set; }

        /// <summary>
        /// 每次延迟时间(毫秒)
        /// </summary>
        public int RetryTimeout { get; set; } = 1000;
    }
}