internal static async Task <BaseWorkItemQueue> GetNextWorkItemQueue(WorkItemQueueRunType workItemQueueRunType, StatefulService statefulService) { BackupRestoreTrace.TraceSource.WriteInfo("BackupRestore.GetNextWorkItemQueue", "workItemQueueRunType {0} ", workItemQueueRunType); BaseWorkItemQueue baseWorkItemQueue = null; switch (workItemQueueRunType) { case WorkItemQueueRunType.WorkItemQueue: baseWorkItemQueue = await WorkItemQueue1Min.CreateOrGetWorkItemQueue(statefulService); break; case WorkItemQueueRunType.WorkItemQueue1MinDelay: baseWorkItemQueue = await WorkItemQueue2Min.CreateOrGetWorkItemQueue(statefulService); break; case WorkItemQueueRunType.WorkItemQueue2MinDelay: baseWorkItemQueue = await WorkItemQueue4Min.CreateOrGetWorkItemQueue(statefulService); break; case WorkItemQueueRunType.WorkItemQueue4MinDelay: baseWorkItemQueue = await WorkItemQueue8Min.CreateOrGetWorkItemQueue(statefulService); break; case WorkItemQueueRunType.WorkItemQueue8MinDelay: baseWorkItemQueue = await WorkItemQueue8Min.CreateOrGetWorkItemQueue(statefulService); break; } BackupRestoreTrace.TraceSource.WriteInfo("BackupRestore.GetNextWorkItemQueue", "Next WorkItemQueue {0} ", baseWorkItemQueue.GetType()); return(baseWorkItemQueue); }
/// <summary> /// Copy constructor /// </summary> /// <param name="other">Object to copy from</param> internal WorkItemProcessInfo(WorkItemProcessInfo other) { if (null == other) { throw new ArgumentNullException("other"); } this.WorkItemId = other.WorkItemId; this.DueDateTime = other.DueDateTime; this.WorkItemQueueRunType = other.WorkItemQueueRunType; }
internal BaseWorkItemQueue(IReliableQueue <WorkItemProcessInfo> workItemReliableQueue, int maxWaitTimeInMinutes, WorkItemQueueRunType workItemQueueRunType, string traceType, StatefulService statefulService) { BackupRestoreTrace.TraceSource.WriteInfo(traceType, "Constructing BaseWorkItemQueue with following parameters - workItemReliableQueue: {0}, maxWaitTimeInMinutes: {1}, workItemQueueRunType: {2}", workItemReliableQueue.Name, maxWaitTimeInMinutes, workItemQueueRunType); this.WorkItemReliableQueue = workItemReliableQueue; this.StatefulService = statefulService; this.WorkItemStore = WorkItemStore.CreateOrGetWorkItemStore(this.StatefulService).GetAwaiter().GetResult(); this.WorkItemInProcessStore = WorkItemInProcessStore.CreateOrGetWorkItemInProcessStore(this.StatefulService).GetAwaiter().GetResult(); this.MaxWaitTimeInMilliSeconds = maxWaitTimeInMinutes == 0 ? FastQueueWaitTime : maxWaitTimeInMinutes * 60 * 1000; this.AllowedTicks = (this.MaxWaitTimeInMilliSeconds * TimeSpan.TicksPerMillisecond) / 20; this.workItemQueueRunType = workItemQueueRunType; this.TraceType = traceType; this.emptyTraceType = string.Format("{0}.{1}", traceType, "Empty"); this.WorkItemHandlerTimer = new Timer(new TimerCallback(this.ProcessWorkItemHandler), null, this.MaxWaitTimeInMilliSeconds, Timeout.Infinite); }
private WorkItemQueue1Min(IReliableQueue <WorkItemProcessInfo> workItemReliableQueue, int maxWaitTimeInMinutes, WorkItemQueueRunType workItemQueueRunType, StatefulService statefulService) : base(workItemReliableQueue, maxWaitTimeInMinutes, workItemQueueRunType, TraceTypeConst, statefulService) { }
internal Builder WithWorkItemQueueRunTimeType(WorkItemQueueRunType value) { tempObject.WorkItemQueueRunType = value; return(this); }
internal WorkItemProcessInfo(Guid workItemId, DateTime dueDateTime) { this.WorkItemId = workItemId; this.DueDateTime = dueDateTime; this.WorkItemQueueRunType = WorkItemQueueRunType.WorkItemQueue; }