Example #1
0
        internal static TResult ExecuteSyncTaskWithRetry <TResult>(SynchronousTask <TResult> syncTask, RetryPolicy policy)
        {
            CommonUtils.AssertNotNull("syncTask", syncTask);
            CommonUtils.AssertNotNull("policy", policy);
            var oracle = policy();

            return(RequestWithRetry.RequestWithRetrySyncImpl <TResult>(oracle, syncTask));
        }
Example #2
0
        internal static Task <T> GetRetryableAsyncTask <T>(Func <Action <T>, TaskSequence> impl, RetryPolicy policy)
        {
            CommonUtils.AssertNotNull("impl", impl);
            CommonUtils.AssertNotNull("policy", policy);

            ShouldRetry oracle = policy();

            InvokeTaskSequenceTask <T> retryableTask = new InvokeTaskSequenceTask <T>(
                (setResult) => RequestWithRetry.RequestWithRetryImpl <T>(oracle, impl, setResult));

            return(retryableTask);
        }
Example #3
0
        internal static Task <NullTaskReturn> GetRetryableAsyncTask(Func <TaskSequence> impl, RetryPolicy policy)
        {
            CommonUtils.AssertNotNull("impl", impl);
            CommonUtils.AssertNotNull("policy", policy);

            ShouldRetry oracle = policy();

            InvokeTaskSequenceTask retryableTask = new InvokeTaskSequenceTask(
                () => RequestWithRetry.RequestWithRetryImpl <NullTaskReturn>(
                    oracle,
                    (setResult) => impl(),
                    (scratch) =>
            {
            }));

            return(retryableTask);
        }