Пример #1
0
        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);
        }
Пример #2
0
        /// <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;
        }
Пример #3
0
        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);
        }
Пример #4
0
 private WorkItemQueue1Min(IReliableQueue <WorkItemProcessInfo> workItemReliableQueue, int maxWaitTimeInMinutes,
                           WorkItemQueueRunType workItemQueueRunType,
                           StatefulService statefulService)
     : base(workItemReliableQueue, maxWaitTimeInMinutes, workItemQueueRunType, TraceTypeConst, statefulService)
 {
 }
Пример #5
0
 internal Builder WithWorkItemQueueRunTimeType(WorkItemQueueRunType value)
 {
     tempObject.WorkItemQueueRunType = value;
     return(this);
 }
Пример #6
0
 internal WorkItemProcessInfo(Guid workItemId, DateTime dueDateTime)
 {
     this.WorkItemId           = workItemId;
     this.DueDateTime          = dueDateTime;
     this.WorkItemQueueRunType = WorkItemQueueRunType.WorkItemQueue;
 }