public override void Run()
        {
            // This is a sample worker implementation. Replace with your logic.
            Trace.TraceInformation("TestRequestSubmitter entry point called", "Information");

            var    tps = int.Parse(CloudConfigurationManager.GetSetting("TPS"));
            var    totalTransactions       = int.Parse(CloudConfigurationManager.GetSetting("TotalTransactions"));
            string instanceId              = RoleEnvironment.CurrentRoleInstance.Id;
            string storageConnectionString = CloudConfigurationManager.GetSetting("StorageConnectionString");
            var    serviceUri              = new Uri(CloudConfigurationManager.GetSetting("ServiceUri"));

            Task webApiSubmitterTask = TestWebApiSubmitter.StartRequestSubmitterAsync(serviceUri, storageConnectionString, instanceId + "-WebApi", tps,
                                                                                      totalTransactions);

            string requestQueueName  = CloudConfigurationManager.GetSetting("ServiceRequestQueue");
            string responseQueueName = "response-queue-" + instanceId.ToLowerInvariant().Replace('_', '-');

            Task queueSubmitterTask = TestServiceQueueSubmitter.StartRequestSubmitterAsync(storageConnectionString, requestQueueName, responseQueueName, tps, totalTransactions);

            try
            {
                Task.WhenAny(queueSubmitterTask, webApiSubmitterTask).Wait();
            }
            catch (Exception exception)
            {
                TestRecorder.LogException(storageConnectionString, instanceId, exception);
                throw;
            }
        }
        public override void Run()
        {
            // This is a sample worker implementation. Replace with your logic.
            Trace.TraceInformation("TestRequestProcessor entry point called", "Information");

            string requestQueueName        = CloudConfigurationManager.GetSetting("ServiceRequestQueue");
            string storageConnectionString = CloudConfigurationManager.GetSetting("StorageConnectionString");
            int    messagesPerRequest      = Int32.Parse(CloudConfigurationManager.GetSetting("MessagesPerRequest"));
            var    requestTimeout          = TimeSpan.FromSeconds(15); // if the request cannot be completed after this long, let someone else try
            var    testWorker = new TestWorker(storageConnectionString, requestQueueName, requestTimeout, messagesPerRequest);

            try
            {
                Task processRequests = testWorker.ProcessRequestsAsync();
                processRequests.Wait(); // should never return
            }
            catch (Exception ex)
            {
                TestRecorder.LogException(storageConnectionString, RoleEnvironment.CurrentRoleInstance.Id, ex);
                throw;
            }
        }