private async Task ExecuteAsync(RedirectHttpRequestScheduledTask task)
        {
            await Executor.ExecuteSilentlyAsync(
                async() =>
            {
                var client = GetSimpleHttpClient();

                var response = await client.GetAsync(new Uri(task.RequestUrl), HttpCompletionOption.ResponseHeadersRead,
                                                     new CancellationTokenSource(task.Timeout).Token);

                task.ResponseRedirectUrl = response.RequestMessage.RequestUri.ToString();
            }).ConfigureAwait(false);
        }
        public async Task <string> ExecuteRedirectOnlyAsync(HttpRequestPriority priority, string urlWithRedirect)
        {
            var task = new RedirectHttpRequestScheduledTask(_config.DeadRequestTimeoutInMilliseconds)
            {
                RequestUrl = urlWithRedirect,
                Priority   = priority
            };

            AddNewTask(priority, task);

            await WaitForTaskCompletionAsync(task).ConfigureAwait(false);

            return(task.ResponseRedirectUrl);
        }