Пример #1
0
        public static TaskHubWorkerSettings CreateTestWorkerSettings(CompressionStyle style = CompressionStyle.Threshold)
        {
            var settings = new TaskHubWorkerSettings();

            settings.TaskOrchestrationDispatcherSettings.CompressOrchestrationState = true;
            settings.MessageCompressionSettings = new CompressionSettings {
                Style = style, ThresholdInBytes = 1024
            };
            return(settings);
        }
Пример #2
0
        public TaskHubWorker CreateTaskHubWorker(bool createInstanceStore = true)
        {
            TaskHubWorkerSettings workerSettings = getDefaultHubWorkerSettings();

            if (createInstanceStore)
            {
                return(new TaskHubWorker(m_TaskHubName, m_ServiceBusConnectionString, m_StorageConnectionString, workerSettings));
            }

            return(new TaskHubWorker(m_TaskHubName, m_ServiceBusConnectionString, workerSettings));
        }
Пример #3
0
        public static TaskHubWorker CreateTaskHubLegacyCompression(bool createInstanceStore = true)
        {
            TaskHubWorkerSettings workerSettings = CreateTestWorkerSettings(CompressionStyle.Legacy);

            if (createInstanceStore)
            {
                return(new TaskHubWorker(TaskHubName, ServiceBusConnectionString, StorageConnectionString, workerSettings));
            }

            return(new TaskHubWorker(TaskHubName, ServiceBusConnectionString));
        }
        internal TaskHubWorkerSettings Clone()
        {
            var clonedSettings = new TaskHubWorkerSettings();

            clonedSettings.TaskOrchestrationDispatcherSettings = TaskOrchestrationDispatcherSettings.Clone();
            clonedSettings.TaskActivityDispatcherSettings      = TaskActivityDispatcherSettings.Clone();
            clonedSettings.TrackingDispatcherSettings          = TrackingDispatcherSettings.Clone();

            clonedSettings.MessageCompressionSettings = MessageCompressionSettings;

            return(clonedSettings);
        }
        internal TaskHubWorkerSettings Clone()
        {
            var clonedSettings = new TaskHubWorkerSettings();

            clonedSettings.TaskOrchestrationDispatcherSettings = TaskOrchestrationDispatcherSettings.Clone();
            clonedSettings.TaskActivityDispatcherSettings = TaskActivityDispatcherSettings.Clone();
            clonedSettings.TrackingDispatcherSettings = TrackingDispatcherSettings.Clone();

            clonedSettings.MessageCompressionSettings = MessageCompressionSettings;

            return clonedSettings;
        }
Пример #6
0
        private TaskHubWorkerSettings getDefaultHubWorkerSettings(CompressionStyle style = CompressionStyle.Threshold)
        {
            var settings = new TaskHubWorkerSettings();

            settings.TaskOrchestrationDispatcherSettings.CompressOrchestrationState = true;
            settings.MessageCompressionSettings = new CompressionSettings {
                Style = style, ThresholdInBytes = 1024
            };

            // TODO? :
            //if (m_Services != null)
            //    settings.Services = m_Services;

            return(settings);
        }
Пример #7
0
        static void Main(string[] args)
        {
            string tableConnectionString = ConfigurationManager.AppSettings["StorageConnectionString"];

            if (CommandLine.Parser.Default.ParseArgumentsStrict(args, options))
            {
                string connectionString = ConfigurationManager.ConnectionStrings["Microsoft.ServiceBus.ConnectionString"].ConnectionString;
                string taskHubName      = ConfigurationManager.AppSettings["TaskHubName"];

                TaskHubClient         taskHubClient = new TaskHubClient(taskHubName, connectionString, tableConnectionString);
                TaskHubWorkerSettings settings      = new TaskHubWorkerSettings();
                settings.TaskOrchestrationDispatcherSettings.CompressOrchestrationState  = bool.Parse(ConfigurationManager.AppSettings["CompressOrchestrationState"]);
                settings.TaskActivityDispatcherSettings.MaxConcurrentActivities          = int.Parse(ConfigurationManager.AppSettings["MaxConcurrentActivities"]);
                settings.TaskOrchestrationDispatcherSettings.MaxConcurrentOrchestrations = int.Parse(ConfigurationManager.AppSettings["MaxConcurrentOrchestrations"]);
                TaskHubWorker taskHub = new TaskHubWorker(taskHubName, connectionString, tableConnectionString, settings);

                if (options.CreateHub)
                {
                    taskHub.CreateHub();
                }

                OrchestrationInstance instance = null;
                string instanceId = options.StartInstance;

                if (!string.IsNullOrWhiteSpace(instanceId))
                {
                    instance = taskHubClient.CreateOrchestrationInstance(typeof(DriverOrchestration), instanceId, new DriverOrchestrationData
                    {
                        NumberOfIteration     = int.Parse(ConfigurationManager.AppSettings["DriverOrchestrationIterations"]),
                        NumberOfParallelTasks = int.Parse(ConfigurationManager.AppSettings["DriverOrchestrationParallelTasks"]),
                        SubOrchestrationData  = new TestOrchestrationData
                        {
                            NumberOfParallelTasks = int.Parse(ConfigurationManager.AppSettings["ChildOrchestrationParallelTasks"]),
                            NumberOfSerialTasks   = int.Parse(ConfigurationManager.AppSettings["ChildOrchestrationSerialTasks"]),
                            MaxDelayInSeconds     = int.Parse(ConfigurationManager.AppSettings["TestTaskMaxDelayInMinutes"]),
                        },
                    });
                }
                else
                {
                    instance = new OrchestrationInstance {
                        InstanceId = options.InstanceId
                    };
                }

                Stopwatch stopWatch = new Stopwatch();
                stopWatch.Start();

                TestTask testTask = new TestTask();
                taskHub.AddTaskActivities(testTask);
                taskHub.AddTaskOrchestrations(typeof(DriverOrchestration));
                taskHub.AddTaskOrchestrations(typeof(TestOrchestration));
                taskHub.Start();

                int testTimeoutInSeconds = int.Parse(ConfigurationManager.AppSettings["TestTimeoutInSeconds"]);
                OrchestrationState state = WaitForInstance(taskHubClient, instance, testTimeoutInSeconds);
                stopWatch.Stop();
                Console.WriteLine("Orchestration Status: " + state.OrchestrationStatus.ToString());
                Console.WriteLine("Orchestration Result: " + state.Output);
                Console.WriteLine("Counter: " + testTask.counter);

                TimeSpan totalTime   = stopWatch.Elapsed;
                string   elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}",
                                                     totalTime.Hours, totalTime.Minutes, totalTime.Seconds,
                                                     totalTime.Milliseconds / 10);
                Console.WriteLine("Total Time: " + elapsedTime);

                taskHub.Stop();
            }
        }