public void OnStartExecution() { if (this.statisticsLevel.CollectDetailedThreadStatistics()) { queueTracking.OnStartExecution(); } }
public void OnStartExecution() { if (ExecutorOptions.CollectDetailedThreadStatistics) { queueTracking.OnStartExecution(); } }
public void Start() { Running = true; if (this.statisticsLevel.CollectQueueStats()) { queueTracking.OnStartExecution(); } if (logger.IsEnabled(LogLevel.Debug)) logger.Debug("Proxy grain client started"); }
public void Start() { Running = true; if (StatisticsCollector.CollectQueueStats) { queueTracking.OnStartExecution(); } if (logger.IsVerbose) { logger.Verbose("Proxy grain client started"); } }
public async Task StartAsync(CancellationToken cancellationToken) { await EstablishInitialConnection(cancellationToken); if (this.statisticsLevel.CollectQueueStats()) { queueTracking.OnStartExecution(); } Running = true; if (logger.IsEnabled(LogLevel.Debug)) { logger.LogDebug("Proxy grain client started"); } }
internal WorkQueue() { mainQueue = new BlockingCollection<IWorkItem>(new ConcurrentBag<IWorkItem>()); systemQueue = new BlockingCollection<IWorkItem>(new ConcurrentBag<IWorkItem>()); queueArray = new BlockingCollection<IWorkItem>[] { systemQueue, mainQueue }; if (!StatisticsCollector.CollectShedulerQueuesStats) return; mainQueueTracking = new QueueTrackingStatistic("Scheduler.LevelOne.MainQueue"); systemQueueTracking = new QueueTrackingStatistic("Scheduler.LevelOne.SystemQueue"); tasksQueueTracking = new QueueTrackingStatistic("Scheduler.LevelOne.TasksQueue"); mainQueueTracking.OnStartExecution(); systemQueueTracking.OnStartExecution(); tasksQueueTracking.OnStartExecution(); }
internal WorkQueue() { mainQueue = new BlockingCollection <IWorkItem>(new ConcurrentBag <IWorkItem>()); systemQueue = new BlockingCollection <IWorkItem>(new ConcurrentBag <IWorkItem>()); queueArray = new BlockingCollection <IWorkItem>[] { systemQueue, mainQueue }; if (!StatisticsCollector.CollectShedulerQueuesStats) { return; } mainQueueTracking = new QueueTrackingStatistic("Scheduler.LevelOne.MainQueue"); systemQueueTracking = new QueueTrackingStatistic("Scheduler.LevelOne.SystemQueue"); tasksQueueTracking = new QueueTrackingStatistic("Scheduler.LevelOne.TasksQueue"); mainQueueTracking.OnStartExecution(); systemQueueTracking.OnStartExecution(); tasksQueueTracking.OnStartExecution(); }
internal WorkItemGroup(OrleansTaskScheduler sched, ISchedulingContext schedulingContext) { masterScheduler = sched; SchedulingContext = schedulingContext; state = WorkGroupStatus.Waiting; workItems = new Queue <Task>(); lockable = new Object(); totalItemsEnQueued = 0; totalItemsProcessed = 0; totalQueuingDelay = TimeSpan.Zero; quantumExpirations = 0; TaskRunner = new ActivationTaskScheduler(this); MaxPendingItemsLimit = LimitManager.GetLimit(LimitNames.LIMIT_MAX_PENDING_ITEMS); log = IsSystem ? TraceLogger.GetLogger("Scheduler." + Name + ".WorkItemGroup", TraceLogger.LoggerType.Runtime) : appLogger; if (StatisticsCollector.CollectShedulerQueuesStats) { queueTracking = new QueueTrackingStatistic("Scheduler." + SchedulingContext.Name); queueTracking.OnStartExecution(); } if (StatisticsCollector.CollectPerWorkItemStats) { workItemGroupStatisticsNumber = SchedulerStatisticsGroup.RegisterWorkItemGroup(SchedulingContext.Name, SchedulingContext, () => { var sb = new StringBuilder(); lock (lockable) { sb.Append("QueueLength = " + WorkItemCount); sb.Append(String.Format(", State = {0}", state)); if (state == WorkGroupStatus.Runnable) { sb.Append(String.Format("; oldest item is {0} old", workItems.Count >= 0 ? workItems.Peek().ToString() : "null")); } } return(sb.ToString()); }); } }
// This is the maximum number of waiting threads (blocked in WaitForResponse) allowed // per ActivationWorker. An attempt to wait when there are already too many threads waiting // will result in a TooManyWaitersException being thrown. //private static readonly int MaxWaitingThreads = 500; internal WorkItemGroup(OrleansTaskScheduler sched, ISchedulingContext schedulingContext, ILoggerFactory loggerFactory) { masterScheduler = sched; SchedulingContext = schedulingContext; state = WorkGroupStatus.Waiting; workItems = new Queue <Task>(); lockable = new Object(); totalItemsEnQueued = 0; totalItemsProcessed = 0; totalQueuingDelay = TimeSpan.Zero; quantumExpirations = 0; TaskRunner = new ActivationTaskScheduler(this, loggerFactory); log = IsSystemPriority ? loggerFactory.CreateLogger($"{this.GetType().Namespace} {Name}.{this.GetType().Name}") : loggerFactory.CreateLogger <WorkItemGroup>(); if (StatisticsCollector.CollectShedulerQueuesStats) { queueTracking = new QueueTrackingStatistic("Scheduler." + SchedulingContext.Name); queueTracking.OnStartExecution(); } if (StatisticsCollector.CollectPerWorkItemStats) { workItemGroupStatisticsNumber = SchedulerStatisticsGroup.RegisterWorkItemGroup(SchedulingContext.Name, SchedulingContext, () => { var sb = new StringBuilder(); lock (lockable) { sb.Append("QueueLength = " + WorkItemCount); sb.Append(String.Format(", State = {0}", state)); if (state == WorkGroupStatus.Runnable) { sb.Append(String.Format("; oldest item is {0} old", workItems.Count >= 0 ? workItems.Peek().ToString() : "null")); } } return(sb.ToString()); }); } }
// This is the maximum number of waiting threads (blocked in WaitForResponse) allowed // per ActivationWorker. An attempt to wait when there are already too many threads waiting // will result in a TooManyWaitersException being thrown. //private static readonly int MaxWaitingThreads = 500; internal WorkItemGroup(OrleansTaskScheduler sched, ISchedulingContext schedulingContext) { masterScheduler = sched; SchedulingContext = schedulingContext; state = WorkGroupStatus.Waiting; workItems = new Queue<ActivationTask>(); lockable = new Object(); totalItemsEnQueued = 0; totalItemsProcessed = 0; totalQueuingDelay = TimeSpan.Zero; quantumExpirations = 0; TaskRunner = new ActivationTaskScheduler(this); log = IsSystemPriority ? LogManager.GetLogger("Scheduler." + Name + ".WorkItemGroup", LoggerType.Runtime) : appLogger; if (StatisticsCollector.CollectShedulerQueuesStats) { queueTracking = new QueueTrackingStatistic("Scheduler." + SchedulingContext.Name); queueTracking.OnStartExecution(); } if (StatisticsCollector.CollectPerWorkItemStats) { workItemGroupStatisticsNumber = SchedulerStatisticsGroup.RegisterWorkItemGroup(SchedulingContext.Name, SchedulingContext, () => { var sb = new StringBuilder(); lock (lockable) { sb.Append("QueueLength = " + WorkItemCount); sb.Append(String.Format(", State = {0}", state)); if (state == WorkGroupStatus.Runnable) sb.Append(String.Format("; oldest item is {0} old", workItems.Count >= 0 ? workItems.Peek().ToString() : "null")); } return sb.ToString(); }); } }