public void Consume(IConsumeContext <ExecuteHttpRequest> context)
        {
            Console.WriteLine("Sending Request to {0}", context.Message.Url);

            try
            {
                var cancellationTokenSource = new CancellationTokenSource();
                cancellationTokenSource.CancelAfter(30000);

                DateTime  startTime = DateTime.UtcNow;
                Stopwatch timer     = Stopwatch.StartNew();

                Task task = _client.GetAsync(context.Message.Url,
                                             HttpCompletionOption.ResponseHeadersRead, cancellationTokenSource.Token)
                            .ContinueWith(x =>
                {
                    timer.Stop();

                    Console.WriteLine("Request completing as {0} ({1})", x.Result.StatusCode,
                                      context.Message.Url);

                    if (x.Result.IsSuccessStatusCode)
                    {
                        context.Respond(new HttpRequestSucceededEvent(x.Result.StatusCode));

                        context.NotifyResourceUsageCompleted(context.Message.Url, startTime,
                                                             timer.Elapsed);
                    }
                    else
                    {
                        context.Respond(new HttpRequestFaultedEvent(x.Result.StatusCode));

                        context.NotifyResourceUsageFailed(context.Message.Url,
                                                          x.Result.ReasonPhrase);
                    }

                    x.Result.Dispose();
                }, TaskContinuationOptions.OnlyOnRanToCompletion)
                            .ContinueWith(
                    x =>
                {
                    context.Respond(
                        new HttpRequestFaultedEvent(HttpStatusCode.InternalServerError));
                },
                    TaskContinuationOptions.OnlyOnFaulted);

                task.Wait(cancellationTokenSource.Token);
            }
            catch (Exception ex)
            {
                context.GenerateFault(ex);
            }
        }