static IOrchestrationServiceClient CreateOrchestrationServiceClient( ServiceBusOrchestrationServiceSettings settings) { var service = new ServiceBusOrchestrationService( ServiceBusConnectionString, TaskHubName, new AzureTableInstanceStore(TaskHubName, StorageConnectionString), new AzureStorageBlobStore(TaskHubName, StorageConnectionString), settings); return(service); }
static IOrchestrationService CreateOrchestrationServiceWorker( ServiceBusOrchestrationServiceSettings settings, TimeSpan jumpStartAttemptInterval) { var service = new ServiceBusOrchestrationService( ServiceBusConnectionString, TaskHubName, new AzureTableInstanceStore(TaskHubName, StorageConnectionString), new AzureStorageBlobStore(TaskHubName, StorageConnectionString), settings); return(service); }
public static ServiceBusOrchestrationServiceSettings CreateTestClientSettings() { var settings = new ServiceBusOrchestrationServiceSettings { MessageCompressionSettings = new CompressionSettings { Style = CompressionStyle.Threshold, ThresholdInBytes = 1024 } }; return(settings); }
public static ServiceBusOrchestrationServiceSettings CreateTestWorkerSettings(CompressionStyle style = CompressionStyle.Threshold) { var settings = new ServiceBusOrchestrationServiceSettings { TaskOrchestrationDispatcherSettings = { CompressOrchestrationState = true }, MessageCompressionSettings = new CompressionSettings { Style = style, ThresholdInBytes = 1024 }, JumpStartSettings = { JumpStartEnabled = true, IgnoreWindow = TimeSpan.FromSeconds(10) } }; return(settings); }
private static async Task startAsync() { CloudStorageAccount storageAccount = CloudStorageAccount.Parse("UseDevelopmentStorage=true;DevelopmentStorageProxyUri=http://127.0.0.1;"); IOrchestrationServiceInstanceStore store = new AzureTableInstanceStore("TestTaskHub9", "UseDevelopmentStorage=true;DevelopmentStorageProxyUri= http://127.0.0.1;"); var settings = new ServiceBusOrchestrationServiceSettings(); var service = new ServiceBusOrchestrationService("<ServiceBUsConnectionString>", "TestTaskHub9", store, null, settings); TaskHubWorker hubWorker = new TaskHubWorker(service); hubWorker.AddTaskOrchestrations(typeof(TestOrchestration)); hubWorker.AddTaskActivities(typeof(TestActivity1)); hubWorker.AddTaskActivities(typeof(TestActivity2)); await service.CreateIfNotExistsAsync(); await hubWorker.StartAsync(); }
static void Main(string[] args) { IOrchestrationServiceInstanceStore store = new AzureTableInstanceStore("TestTaskHub9", "UseDevelopmentStorage=true;DevelopmentStorageProxyUri=http://127.0.0.1;"); var settings = new ServiceBusOrchestrationServiceSettings(); var service = new ServiceBusOrchestrationService("<ServiceBUsConnectionString>", "TestTaskHub9", store, null, settings); var client = new TaskHubClient(service); try { var instance = client.CreateOrchestrationInstanceAsync(typeof(TestOrchestration), "InstanceId5302", "Test Input").Result; } catch (Exception e) { Console.WriteLine(e.Message); } while (true) { Thread.Sleep(1000); } }
public async Task TestMaxDeliveryCountIfNew() { var settings = new ServiceBusOrchestrationServiceSettings { MaxTaskActivityDeliveryCount = 100, MaxTaskOrchestrationDeliveryCount = 100, MaxTrackingDeliveryCount = 100 }; taskHub = TestHelpers.CreateTaskHub(settings); var service = taskHub.orchestrationService as ServiceBusOrchestrationService; Assert.IsNotNull(service); await service.CreateIfNotExistsAsync(); Dictionary <string, int> retQueues = await service.GetHubQueueMaxDeliveryCountsAsync(); Assert.AreEqual(settings.MaxTaskActivityDeliveryCount, retQueues["TaskOrchestration"]); Assert.AreEqual(settings.MaxTaskOrchestrationDeliveryCount, retQueues["TaskActivity"]); Assert.AreEqual(settings.MaxTrackingDeliveryCount, retQueues["Tracking"]); await service.DeleteAsync(); }
public static TaskHubWorker CreateTaskHub(ServiceBusOrchestrationServiceSettings settings) { return(new TaskHubWorker(CreateOrchestrationServiceWorker(settings, TimeSpan.FromMinutes(10)))); }
static void Main(string[] args) { eventListener = new ObservableEventListener(); eventListener.LogToFlatFile("Trace.log"); eventListener.EnableEvents(DefaultEventSource.Log, EventLevel.Warning); 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"]; IOrchestrationServiceInstanceStore instanceStore = new AzureTableInstanceStore(taskHubName, tableConnectionString); ServiceBusOrchestrationServiceSettings settings = new ServiceBusOrchestrationServiceSettings { TaskOrchestrationDispatcherSettings = { CompressOrchestrationState = bool.Parse(ConfigurationManager.AppSettings["CompressOrchestrationState"]), MaxConcurrentOrchestrations = int.Parse(ConfigurationManager.AppSettings["MaxConcurrentOrchestrations"]) }, TaskActivityDispatcherSettings = { MaxConcurrentActivities = int.Parse(ConfigurationManager.AppSettings["MaxConcurrentActivities"]) } }; ServiceBusOrchestrationService orchestrationServiceAndClient = new ServiceBusOrchestrationService(connectionString, taskHubName, instanceStore, null, settings); TaskHubClient taskHubClient = new TaskHubClient(orchestrationServiceAndClient); TaskHubWorker taskHub = new TaskHubWorker(orchestrationServiceAndClient); if (options.CreateHub) { orchestrationServiceAndClient.CreateIfNotExistsAsync().Wait(); } OrchestrationInstance instance = null; string instanceId = options.StartInstance; if (!string.IsNullOrWhiteSpace(instanceId)) { var driverConfig = 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"]), MaxDelayInMinutes = int.Parse(ConfigurationManager.AppSettings["TestTaskMaxDelayInMinutes"]), } }; instance = taskHubClient.CreateOrchestrationInstanceAsync(typeof(DriverOrchestration), instanceId, driverConfig).Result; } else { instance = new OrchestrationInstance { InstanceId = options.InstanceId }; } Console.WriteLine($"Orchestration starting: {DateTime.Now}"); Stopwatch stopWatch = Stopwatch.StartNew(); TestTask testTask = new TestTask(); taskHub.AddTaskActivities(testTask); taskHub.AddTaskOrchestrations(typeof(DriverOrchestration)); taskHub.AddTaskOrchestrations(typeof(TestOrchestration)); taskHub.StartAsync().Wait(); int testTimeoutInSeconds = int.Parse(ConfigurationManager.AppSettings["TestTimeoutInSeconds"]); OrchestrationState state = WaitForInstance(taskHubClient, instance, testTimeoutInSeconds); stopWatch.Stop(); Console.WriteLine($"Orchestration Status: {state.OrchestrationStatus}"); Console.WriteLine($"Orchestration Result: {state.Output}"); Console.WriteLine($"Counter: {testTask.counter}"); TimeSpan totalTime = stopWatch.Elapsed; string elapsedTime = $"{totalTime.Hours:00}:{totalTime.Minutes:00}:{totalTime.Seconds:00}.{totalTime.Milliseconds/10:00}"; Console.WriteLine($"Total Time: {elapsedTime}"); Console.ReadLine(); taskHub.StopAsync().Wait(); } }
// ReSharper disable once UnusedMember.Local static void Main(string[] args) { using (DiagnosticPipelineFactory.CreatePipeline("eventFlowConfig.json")) { var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); string tableConnectionString = config.AppSettings.Settings["StorageConnectionString"].Value; ParserResult <Options> parserResult = Parser.Default.ParseArguments <Options>(args); parserResult.WithParsed( options => { string connectionString = config.ConnectionStrings.ConnectionStrings["Microsoft.ServiceBus.ConnectionString"].ConnectionString; string taskHubName = config.AppSettings.Settings["TaskHubName"].Value; IOrchestrationServiceInstanceStore instanceStore = new AzureTableInstanceStore(taskHubName, tableConnectionString); var settings = new ServiceBusOrchestrationServiceSettings { TaskOrchestrationDispatcherSettings = { CompressOrchestrationState = bool.Parse(config.AppSettings.Settings["CompressOrchestrationState"].Value), MaxConcurrentOrchestrations = int.Parse(config.AppSettings.Settings["MaxConcurrentOrchestrations"].Value) }, TaskActivityDispatcherSettings = { MaxConcurrentActivities = int.Parse(config.AppSettings.Settings["MaxConcurrentActivities"].Value) } }; var orchestrationServiceAndClient = new ServiceBusOrchestrationService(connectionString, taskHubName, instanceStore, null, settings); var taskHubClient = new TaskHubClient(orchestrationServiceAndClient); var taskHub = new TaskHubWorker(orchestrationServiceAndClient); if (options.CreateHub) { orchestrationServiceAndClient.CreateIfNotExistsAsync().Wait(); } OrchestrationInstance instance; string instanceId = options.StartInstance; if (!string.IsNullOrWhiteSpace(instanceId)) { var driverConfig = new DriverOrchestrationData { NumberOfIteration = int.Parse(config.AppSettings.Settings["DriverOrchestrationIterations"].Value), NumberOfParallelTasks = int.Parse(config.AppSettings.Settings["DriverOrchestrationParallelTasks"].Value), SubOrchestrationData = new TestOrchestrationData { NumberOfParallelTasks = int.Parse(config.AppSettings.Settings["ChildOrchestrationParallelTasks"].Value), NumberOfSerialTasks = int.Parse(config.AppSettings.Settings["ChildOrchestrationSerialTasks"].Value), MaxDelayInMinutes = int.Parse(config.AppSettings.Settings["TestTaskMaxDelayInMinutes"].Value), } }; instance = taskHubClient.CreateOrchestrationInstanceAsync(typeof(DriverOrchestration), instanceId, driverConfig).Result; } else { instance = new OrchestrationInstance { InstanceId = options.InstanceId }; } Console.WriteLine($"Orchestration starting: {DateTime.Now}"); Stopwatch stopWatch = Stopwatch.StartNew(); var testTask = new TestTask(); taskHub.AddTaskActivities(testTask); taskHub.AddTaskOrchestrations(typeof(DriverOrchestration)); taskHub.AddTaskOrchestrations(typeof(TestOrchestration)); taskHub.StartAsync().Wait(); int testTimeoutInSeconds = int.Parse(config.AppSettings.Settings["TestTimeoutInSeconds"].Value); OrchestrationState state = WaitForInstance(taskHubClient, instance, testTimeoutInSeconds); stopWatch.Stop(); Console.WriteLine($"Orchestration Status: {state.OrchestrationStatus}"); Console.WriteLine($"Orchestration Result: {state.Output}"); Console.WriteLine($"Counter: {testTask.Counter}"); TimeSpan totalTime = stopWatch.Elapsed; string elapsedTime = $"{totalTime.Hours:00}:{totalTime.Minutes:00}:{totalTime.Seconds:00}.{totalTime.Milliseconds / 10:00}"; Console.WriteLine($"Total Time: {elapsedTime}"); Console.ReadLine(); taskHub.StopAsync().Wait(); }) .WithNotParsed(errors => Console.Error.WriteLine(Options.GetUsage(parserResult))); } }