protected override void YieldTask(SystemTaskBase task)
 {
     lock (this.instanceLock)
     {
         this.tasksWaitingExecution.AddLast(task);
     }
 }
Exemplo n.º 2
0
        protected override void CompleteTask(SystemTaskBase task)
        {
            MrsSystemTask mrsSystemTask = task as MrsSystemTask;
            IJob          job           = mrsSystemTask.Job;

            job.ProcessTaskExecutionResult(mrsSystemTask);
            switch (job.State)
            {
            case JobState.Runnable:
                lock (this.instanceLock)
                {
                    lock (JobScheduler.staticLock)
                    {
                        this.runningJobs.Remove(job);
                        JobScheduler.RunnableJobs.Add(job);
                    }
                }
                return;

            case JobState.Failed:
                lock (this.instanceLock)
                {
                    job.RevertToPreviousUnthrottledState();
                    this.runningJobs.Remove(job);
                }
                this.OnJobStateChanged(job, job.State);
                return;

            default:
                return;
            }
        }
Exemplo n.º 3
0
        protected override void InternalLogActivityEvent(IActivityScope activityScope, ActivityEventType eventType)
        {
            object        userState     = activityScope.UserState;
            AssistantBase assistantBase = null;
            string        assistantShortName;

            if (activityScope.ActivityType == ActivityType.Global)
            {
                assistantShortName = "GlobalActivity";
            }
            else
            {
                SystemTaskBase systemTaskBase = userState as SystemTaskBase;
                if (systemTaskBase != null)
                {
                    assistantShortName = systemTaskBase.Workload.Id;
                }
                else
                {
                    AssistantBase assistantBase2 = userState as AssistantBase;
                    if (assistantBase2 == null)
                    {
                        return;
                    }
                    assistantBase      = assistantBase2;
                    assistantShortName = assistantBase.NonLocalizedName;
                }
            }
            AssistantsEventType eventType2;

            switch (eventType)
            {
            case ActivityEventType.SuspendActivity:
                eventType2 = AssistantsEventType.SuspendActivity;
                goto IL_92;

            case ActivityEventType.EndActivity:
                eventType2 = AssistantsEventType.EndActivity;
                goto IL_92;
            }
            base.SafeTraceDebug(0L, "Skip logging ActivityEvent '{0}'.", new object[]
            {
                eventType
            });
            return;

IL_92:
            List <KeyValuePair <string, object> > customData = WorkloadManagementLogger.FormatWlmActivity(activityScope, true);

            AssistantsLog.InternalLogRow(activityScope.ActivityId, assistantShortName, assistantBase, eventType2, customData, Guid.Empty);
        }