public void CreateQueryWithPrimaryAndSecondaryFilter() { var tableClient = new AzureTableClient("myHub", ConnectionString); var stateQuery = new OrchestrationStateQuery(); stateQuery.AddInstanceFilter("myInstance"); stateQuery.AddNameVersionFilter("myName"); TableQuery <AzureTableOrchestrationStateEntity> query = tableClient.CreateQueryInternal(stateQuery, 1, false); Assert.AreEqual("(PartitionKey eq 'IS') and (RowKey ge 'ID_EID_myInstance') and (RowKey lt 'ID_EID_myInstancf') and (InstanceId eq 'myInstance') and (Name eq 'myName')", query.FilterString); }
/// <summary> /// Gets the numer of running instances. /// </summary> /// <param name="microservice"></param> /// <returns>Gets the numer of running instances of the service.</returns> public int GetNumOfRunningInstances(Microservice microservice) { var byNameQuery = new OrchestrationStateQuery(); byNameQuery.AddStatusFilter(OrchestrationStatus.Running); byNameQuery.AddNameVersionFilter(microservice.Orchestration.FullName); var result = m_HubClient.QueryOrchestrationStates(byNameQuery); var cnt = result.Count(svc => svc.OrchestrationStatus == OrchestrationStatus.Running); return(cnt); }
private IEnumerable <OrchestrationState> loadStates(string orchestrationFullName, bool runningOnly = true) { var byNameQuery = new OrchestrationStateQuery(); byNameQuery.AddNameVersionFilter(orchestrationFullName); if (runningOnly) { byNameQuery.AddStatusFilter(OrchestrationStatus.Running); } var oStates = m_HubClient.QueryOrchestrationStates(byNameQuery); return(oStates); }
/// <summary> /// Gets the number of running instances. /// </summary> /// <param name="microservice"></param> /// <returns>Gets the number of running instances of the service. /// If m_StorageConnectionString is not confiogured this method returns 0.</returns> public int GetNumOfRunningInstances(Microservice microservice) { if (String.IsNullOrEmpty(this.m_StorageConnectionString)) { return(0); } var byNameQuery = new OrchestrationStateQuery(); byNameQuery.AddStatusFilter(OrchestrationStatus.Running); byNameQuery.AddNameVersionFilter(microservice.Orchestration.FullName); var result = m_HubClient.QueryOrchestrationStates(byNameQuery); return(result.Count()); }
public void QueryDuplicateFiltersTest() { OrchestrationStateQuery query = new OrchestrationStateQuery().AddInstanceFilter(null, false); AssertException <ArgumentException>(() => query.AddInstanceFilter(null, false)); query = new OrchestrationStateQuery().AddNameVersionFilter(null, null); AssertException <ArgumentException>(() => query.AddNameVersionFilter(null, null)); query = new OrchestrationStateQuery().AddTimeRangeFilter(DateTime.MaxValue, DateTime.MaxValue, OrchestrationStateTimeRangeFilterType.OrchestrationLastUpdatedTimeFilter); AssertException <ArgumentException>(() => query.AddTimeRangeFilter(DateTime.MaxValue, DateTime.MaxValue, OrchestrationStateTimeRangeFilterType.OrchestrationLastUpdatedTimeFilter)); query = new OrchestrationStateQuery().AddStatusFilter(OrchestrationStatus.Completed); AssertException <ArgumentException>(() => query.AddStatusFilter(OrchestrationStatus.Completed)); }
public void OpenAndStartServiceHostTest() { eventListener = new ObservableEventListener(); eventListener.LogToConsole(); eventListener.EnableEvents(DefaultEventSource.Log, EventLevel.LogAlways); TraceSource source = new TraceSource("DurableTask"); source.Listeners.AddRange(Trace.Listeners); IOrchestrationServiceInstanceStore instanceStore = new AzureTableInstanceStore(TaskHubName, StorageConnectionString); ServiceBusOrchestrationService orchestrationServiceAndClient = new ServiceBusOrchestrationService(ServiceBusConnectionString, TaskHubName, instanceStore, null, null); orchestrationServiceAndClient.CreateIfNotExistsAsync().Wait(); TaskHubClient taskHubClient = new TaskHubClient(orchestrationServiceAndClient); TaskHubWorker taskHub = new TaskHubWorker(orchestrationServiceAndClient); taskHub.AddTaskOrchestrations(typeof(CounterOrchestration)); taskHub.AddTaskActivities(typeof(Task1), typeof(Task2)); var rnts = ((AzureTableInstanceStore)instanceStore).GetJumpStartEntitiesAsync(1000).Result; var byNameQuery = new OrchestrationStateQuery(); byNameQuery.AddStatusFilter(OrchestrationStatus.Pending); byNameQuery.AddNameVersionFilter(typeof(CounterOrchestration).FullName); var results = ((AzureTableInstanceStore)instanceStore).QueryOrchestrationStatesAsync(byNameQuery).Result; var instance = taskHubClient.CreateOrchestrationInstanceAsync(typeof(CounterOrchestration), Guid.NewGuid().ToString(), new TestOrchestrationInput()).Result; taskHub.StartAsync().Wait(); var state = instanceStore.GetOrchestrationStateAsync(instance.InstanceId, true).Result; var res = taskHubClient.GetOrchestrationHistoryAsync(instance).Result; taskHubClient.WaitForOrchestrationAsync(instance, TimeSpan.MaxValue).Wait(); }