Example #1
0
        public TaskScheduler.UrgentWorkflow CreateUrgentTestWF()
        {
            var wf = new TaskScheduler.UrgentWorkflow();

            wf.Optimize = true;
            var cls = GetClusterNames();

            wf.Resources      = cls.Select(name => TaskTimeMeter.CreateResourceRecord(name)).ToArray();
            wf.ResourcesNames = new string[0];
            var   ss = GetAppNames();
            ulong i  = 0;

            wf.ActiveTasks = new List <TaskScheduler.ActiveTask>();
            var runningTask = new TaskScheduler.ActiveTask()
            {
                Id = 500000
            };

            runningTask.Destination = new LaunchDestination()
            {
                ResourceName = wf.Resources[0].Name, NodeNames = wf.Resources[0].Nodes.Select(n => n.DNSName).ToArray()
            };
            wf.ActiveTasks.Add(runningTask);
            for (var j = 0; j < 5 && j < ss.Count(); j++)
            {
                var task = new TaskScheduler.Task();
                task.ApplicationName = ss.ElementAt(j);
                task.Parameters      = new Dictionary <string, string>();
                task.Parameters["FUNCTIONS_COUNT"] = 20000.ToString();
                task.Id = i++;
                wf.Tasks.Add(task);
            }
            return(wf);
        }
Example #2
0
        public EstimationResult Estimate(Task task, string resourceName, LaunchDestination destination, bool optimize)
        {
            var key = new KeyValuePair <string, ulong>(resourceName, task.Id);

            if (_estimations.ContainsKey(key))
            {
                return(_estimations[key]);
            }
            else
            {
                var result = TaskTimeMeter.MeasureAppTime(task.ApplicationName, task.Parameters, resourceName, destination, optimize);
                _estimations[key] = result;
                return(result);
            }
        }
Example #3
0
 public IEnumerable <string> GetClusterNames()
 {
     return(TaskTimeMeter.GetClusterNames());
 }