Exemplo n.º 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);
        }
Exemplo n.º 2
0
        internal static async Task <WorkItemQueue1Min> CreateOrGetWorkItemQueue(StatefulService statefulService)
        {
            if (workItemQueue == null)
            {
                IReliableQueue <WorkItemProcessInfo> workItemReliableQueue = await statefulService.StateManager.GetOrAddAsync <IReliableQueue <WorkItemProcessInfo> >(Constants.WorkItemQueue1Min);

                workItemQueue = new WorkItemQueue1Min(workItemReliableQueue, 1, WorkItemQueueRunType.WorkItemQueue1MinDelay,
                                                      statefulService);
            }
            return(workItemQueue);
        }
        public override async Task ProcessFailureHandle(StatefulService statefulService, TimeSpan timeout, CancellationToken cancellationToken, string processQueueTypeTrace)
        {
            WorkItemInProcessStore workItemInProcessStore = await
                                                            WorkItemInProcessStore.CreateOrGetWorkItemInProcessStore(statefulService);

            WorkItemQueue1Min workItemQueue1Min = await WorkItemQueue1Min.CreateOrGetWorkItemQueue(statefulService);

            WorkItemProcessInfo workItemProcessInfo = await workItemInProcessStore.GetValueAsync(this.WorkItemGuid);

            using (ITransaction transaction = statefulService.StateManager.CreateTransaction())
            {
                await workItemInProcessStore.DeleteValueAsync(this.WorkItemGuid, timeout, cancellationToken, transaction);

                await workItemQueue1Min.AddWorkItem(workItemProcessInfo, timeout, cancellationToken, transaction);

                await transaction.CommitAsync();

                BackupRestoreTrace.TraceSource.WriteInfo(processQueueTypeTrace, "Process Failure Handle WorkItemInProcessStore Delete WorkItem {0} And Enqueue in {1}  ", this, workItemQueue1Min.GetType());
            }
        }
Exemplo n.º 4
0
        internal static async Task StartAndScheduleWorkItemHandler(StatefulService statefulService)
        {
            BackupRestoreTrace.TraceSource.WriteInfo(TraceType, "Initializing Work Item Queue and Handlers");

            workItemQueue = await WorkItemQueue.CreateOrGetWorkItemQueue(statefulService);

            workItemQueue1Min = await WorkItemQueue1Min.CreateOrGetWorkItemQueue(statefulService);

            workItemQueue2Min = await WorkItemQueue2Min.CreateOrGetWorkItemQueue(statefulService);

            workItemQueue4Min = await WorkItemQueue4Min.CreateOrGetWorkItemQueue(statefulService);

            workItemQueue8Min = await WorkItemQueue8Min.CreateOrGetWorkItemQueue(statefulService);

            BackupRestoreTrace.TraceSource.WriteInfo(TraceType, "Initialized Work Item Queue and Handlers");

            BackupRestoreTrace.TraceSource.WriteInfo(TraceType, "Initializing RecoverInProcessWorkItemWrapper");
            await RecoverInProcessWorkItemWrapper(statefulService);

            BackupRestoreTrace.TraceSource.WriteInfo(TraceType, "RecoverInProcessWorkItemWrapper Completed");
        }
Exemplo n.º 5
0
 internal void DisposeWorkItemQueue()
 {
     this.DisposeWorkItemDeQueuer();
     workItemQueue = null;
 }