public void Enqueue(WorkItem item) { Contract.ThrowIfFalse( item.DocumentId != null, "can only enqueue a document work item" ); UpdateLastAccessTime(); var added = _workItemQueue.AddOrReplace(item); Logger.Log( FunctionId.WorkCoordinator_DocumentWorker_Enqueue, s_enqueueLogger, Environment.TickCount, item.DocumentId, !added ); CheckHigherPriorityDocument(item); SolutionCrawlerLogger.LogWorkItemEnqueue( Processor._logAggregator, item.Language, item.DocumentId, item.InvocationReasons, item.IsLowPriority, item.ActiveMember, added ); }
public void Enqueue(WorkItem item) { UpdateLastAccessTime(); // Project work item = item.ToProjectWorkItem( Processor._listener.BeginAsyncOperation("WorkItem") ); var added = _workItemQueue.AddOrReplace(item); // lower priority queue gets lowest time slot possible. if there is any activity going on in higher queue, it drop whatever it has // and let higher work item run CancelRunningTaskIfHigherQueueHasWorkItem(); Logger.Log( FunctionId.WorkCoordinator_Project_Enqueue, s_enqueueLogger, Environment.TickCount, item.ProjectId, !added ); SolutionCrawlerLogger.LogWorkItemEnqueue( Processor._logAggregator, item.ProjectId ); }
public void Enqueue(WorkItem item) { this.UpdateLastAccessTime(); // Project work item = item.With(documentId: null, projectId: item.ProjectId, asyncToken: this.Processor._listener.BeginAsyncOperation("WorkItem")); var added = _workItemQueue.AddOrReplace(item); Logger.Log(FunctionId.WorkCoordinator_Project_Enqueue, s_enqueueLogger, Environment.TickCount, item.ProjectId, !added); SolutionCrawlerLogger.LogWorkItemEnqueue(this.Processor._logAggregator, item.ProjectId); }