source: DCWoRMS/trunk/src/example/localplugin/FCFSRackLocalPlugin.java @ 497

Revision 497, 1.9 KB checked in by wojtekp, 13 years ago (diff)
  • Property svn:mime-type set to text/plain
Line 
1package example.localplugin;
2
3import gridsim.dcworms.DCWormsTags;
4import schedframe.events.scheduling.SchedulingEvent;
5import schedframe.scheduling.manager.resources.ClusterResourceManager;
6import schedframe.scheduling.manager.resources.ResourceManager;
7import schedframe.scheduling.manager.tasks.JobRegistry;
8import schedframe.scheduling.plan.SchedulingPlanInterface;
9import schedframe.scheduling.plan.impl.SchedulingPlan;
10import schedframe.scheduling.plugin.grid.ModuleList;
11import schedframe.scheduling.queue.TaskQueue;
12import schedframe.scheduling.queue.TaskQueueList;
13import schedframe.scheduling.tasks.TaskInterface;
14import schedframe.scheduling.tasks.WorkloadUnit;
15
16public class FCFSRackLocalPlugin  extends BaseLocalSchedulingPlugin {
17
18        public FCFSRackLocalPlugin() {
19        }
20
21        public SchedulingPlanInterface<?> schedule(SchedulingEvent event, TaskQueueList queues, JobRegistry jobRegistry,
22                        ResourceManager resManager, ModuleList modules) {
23
24                ClusterResourceManager resourceManager = (ClusterResourceManager) resManager;
25                SchedulingPlan plan = new SchedulingPlan();
26                // chose the events types to serve.
27                // Different actions for different events are possible.
28                switch (event.getType()) {
29                case START_TASK_EXECUTION:
30                case TASK_FINISHED:
31                //case TIMER:
32                        // our tasks are placed only in first queue (see
33                        // BaseLocalPlugin.placeJobsInQueues() method)
34                        TaskQueue q = queues.get(0);
35                        // check all tasks in queue
36
37                        for (int i = 0; i < q.size(); i++) {
38                                WorkloadUnit job = q.get(i);
39                                TaskInterface<?> task = (TaskInterface<?>) job;
40                                // if status of the tasks in READY
41                                if (task.getStatus() == DCWormsTags.READY) {
42                                        System.out.println(resourceManager.getSchedulers().get(0).get_name());
43                                        String nodeName = resourceManager.getSchedulers().get(0).get_name();
44                                        if (nodeName != null) {
45                                                addToSchedulingPlan(plan, task, nodeName);
46                                        }
47                                }
48                        }
49
50                        break;
51                }
52                return plan;
53        }
54
55
56}
Note: See TracBrowser for help on using the repository browser.