示例#1
0
        /// <summary>
        /// Schedules given job within PriorityQueue
        /// </summary>
        /// <param name="jobs">Jobs to schedule</param>
        public static void ScheduleJobs(params BaseJob[] jobs)
        {
            foreach (var job in jobs)
            {
                var log = $"Scheduling {job?.GetType()?.Name?.Replace("Job", string.Empty)} job (ID: {job.Id}) with {job.Priority} priority.";
                Debug.WriteLine(log);
                LogHelper.WriteLog(log);
                PriorityQueue.Enqueue(job);
            }

            // TODO perform some operation/s here
            while (!AllJobsHaveFinished())
            {
                if (Executor.CanStartNewJob())
                {
                    var job = PriorityQueue.Dequeue();
                    Executor.ExecuteJob(job);
                }
            }
        }