Beispiel #1
0
        internal void SetState(RequestState value)
        {
            if (this.curState == value)
            {
                return;
            }
            DateTime utcNow   = TimeProvider.UtcNow;
            TimeSpan duration = utcNow.Subtract(this.stateChangeTimestamp);

            this.RefreshDurations();
            if (RequestJobTimeTracker.SupportDurationTracking(this.curState))
            {
                RequestJobDurationData requestJobDurationData;
                if (!this.durations.TryGetValue(this.curState, out requestJobDurationData))
                {
                    requestJobDurationData = new RequestJobDurationData(this.curState);
                }
                requestJobDurationData.AddTime(duration);
                this.durations[this.curState] = requestJobDurationData;
            }
            this.stateChangeTimestamp = utcNow;
            this.curState             = value;
            if (RequestJobTimeTracker.SupportDurationTracking(this.curState))
            {
                this.UpdateActiveCounts(this.curState, 1L);
                this.IncRateCounts(this.curState);
            }
        }
Beispiel #2
0
            private static IEnumerable <IObjectLogPropertyDefinition <RequestJobLogData> > GetTimeTrackerDurations()
            {
                List <IObjectLogPropertyDefinition <RequestJobLogData> > list = new List <IObjectLogPropertyDefinition <RequestJobLogData> >();

                foreach (object obj in Enum.GetValues(typeof(RequestState)))
                {
                    RequestState requestState = (RequestState)obj;
                    if (RequestJobTimeTracker.SupportDurationTracking(requestState))
                    {
                        list.Add(new RequestJobLog.RequestJobLogSchema.TimeTrackerDurationProperty(requestState));
                    }
                }
                return(list);
            }