/// <summary> /// Waits for a recent job on a workitem and returns its name. If a previous job is specified, this method waits until a new job is created. /// </summary> public static string WaitForRecentJob(BatchController controller, BatchAccountContext context, string workItemName, string previousJob = null) { DateTime timeout = DateTime.Now.AddMinutes(2); YieldInjectionInterceptor interceptor = CreateHttpRecordingInterceptor(); BatchClientBehavior[] behaviors = new BatchClientBehavior[] { interceptor }; BatchClient client = new BatchClient(controller.BatchManagementClient, controller.ResourceManagementClient); ListWorkItemOptions options = new ListWorkItemOptions(context, behaviors) { WorkItemName = workItemName, Filter = null, MaxCount = Constants.DefaultMaxCount }; PSCloudWorkItem workItem = client.ListWorkItems(options).First(); while (workItem.ExecutionInformation.RecentJob == null || string.Equals(workItem.ExecutionInformation.RecentJob.Name, previousJob, StringComparison.OrdinalIgnoreCase)) { if (DateTime.Now > timeout) { throw new TimeoutException("Timed out waiting for recent job"); } Sleep(5000); workItem = client.ListWorkItems(options).First(); } return(workItem.ExecutionInformation.RecentJob.Name); }
/// <summary> /// Waits for a recent job on a workitem and returns its name. If a previous job is specified, this method waits until a new job is created. /// </summary> public static string WaitForRecentJob(BatchController controller, BatchAccountContext context, string workItemName, string previousJob = null) { DateTime timeout = DateTime.Now.AddMinutes(2); YieldInjectionInterceptor interceptor = CreateHttpRecordingInterceptor(); BatchClientBehavior[] behaviors = new BatchClientBehavior[] { interceptor }; BatchClient client = new BatchClient(controller.BatchManagementClient, controller.ResourceManagementClient); ListWorkItemOptions options = new ListWorkItemOptions(context, behaviors) { WorkItemName = workItemName, Filter = null, MaxCount = Constants.DefaultMaxCount }; PSCloudWorkItem workItem = client.ListWorkItems(options).First(); while (workItem.ExecutionInformation.RecentJob == null || string.Equals(workItem.ExecutionInformation.RecentJob.Name, previousJob, StringComparison.OrdinalIgnoreCase)) { if (DateTime.Now > timeout) { throw new TimeoutException("Timed out waiting for recent job"); } Sleep(5000); workItem = client.ListWorkItems(options).First(); } return workItem.ExecutionInformation.RecentJob.Name; }