Ejemplo n.º 1
0

        
Ejemplo n.º 2
0
        /// <summary>
        /// retry async
        /// </summary>
        /// <param name="option"></param>
        /// <returns></returns>
        public IAsyncPolicy <WebResponse> GetRetryPolicyAsync(RestOption option)
        {
            var jitter = TimeSpan.FromMilliseconds(RandomProvider.GetThreadRandom().Next(0, 100));

            return(Policy <WebResponse>
                   .Handle <WebException>(ex => ((HttpWebResponse)ex.Response).StatusCode == HttpStatusCode.InternalServerError)
                   .WaitAndRetryAsync(option.RetryCount, retryAttempt =>
                                      TimeSpan.FromSeconds(Math.Pow(option.SleepDurationSeconds, retryAttempt)) + jitter));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// retry
        /// </summary>
        /// <param name="option"></param>
        /// <returns></returns>
        public Policy <HttpWebResponse> GetRetryPolicy(RestOption option)
        {
            var jitter = TimeSpan.FromMilliseconds(RandomProvider.GetThreadRandom().Next(0, 100));

            return(Policy <HttpWebResponse>
                   .Handle <WebException>(r => r.Status == WebExceptionStatus.ProtocolError && ((HttpWebResponse)r.Response).StatusCode >= HttpStatusCode.InternalServerError)
                   .OrResult(r => r.StatusCode >= HttpStatusCode.InternalServerError)
                   .WaitAndRetry(option.RetryCount, retryAttempt =>
                                 TimeSpan.FromSeconds(Math.Pow(option.SleepDurationSeconds, retryAttempt)) + jitter));
        }
Ejemplo n.º 4
0
 /// <summary>
 /// request option parameters setting
 /// </summary>
 /// <param name="option"></param>
 public void SetOption(RestOption option)
 {
     Option = option;
 }
Ejemplo n.º 5
0

        
Ejemplo n.º 6
0

        
Ejemplo n.º 7
0