source: DCWoRMS/branches/coolemall/src/example/localplugin/FCFSBF_LocalPlugin.java @ 883

Revision 883, 1.9 KB checked in by wojtekp, 12 years ago (diff)
  • Property svn:mime-type set to text/plain
Line 
1package example.localplugin;
2
3import gridsim.dcworms.DCWormsTags;
4import schedframe.events.scheduling.EventReason;
5import schedframe.events.scheduling.SchedulingEvent;
6import schedframe.resources.computing.profiles.energy.EnergyEvent;
7import schedframe.resources.computing.profiles.energy.EnergyEventType;
8import schedframe.scheduling.manager.resources.ResourceManager;
9import schedframe.scheduling.manager.tasks.JobRegistry;
10import schedframe.scheduling.plan.impl.SchedulingPlan;
11import schedframe.scheduling.plugin.grid.ModuleList;
12import schedframe.scheduling.queue.TaskQueue;
13import schedframe.scheduling.queue.TaskQueueList;
14import schedframe.scheduling.tasks.TaskInterface;
15import simulator.DataCenterWorkloadSimulator;
16import test.EventManager;
17
18public class FCFSBF_LocalPlugin extends BaseLocalSchedulingPlugin {
19
20        public SchedulingPlan schedule(SchedulingEvent event, TaskQueueList queues, JobRegistry jobRegistry,
21                         ResourceManager resManager, ModuleList modules) {
22
23                SchedulingPlan plan = new SchedulingPlan();
24                // Choose the events types to serve. Different actions for different events are possible.
25                switch (event.getType()) {
26                case START_TASK_EXECUTION:
27                case TASK_FINISHED:
28                       
29                        // our tasks are placed only in first queue (see BaseLocalSchedulingPlugin.placeJobsInQueues() method)
30                        TaskQueue q = queues.get(0);
31                       
32                        // check all tasks in queue
33                        for (int i = 0; i < q.size(); i++) {
34                                TaskInterface<?> task = q.get(i);
35                                //EventManager em = DataCenterWorkloadSimulator.getEventManager();
36                                //EnergyEvent energyEvent = new EnergyEvent(EnergyEventType.AIRFLOW_STATE_CHANGED, "Resource controller");
37                                //energyEvent.setReason(EventReason.SIM_INIT);
38                                //em.sendToAllResources(40000, energyEvent);
39                                //em.sendToAllSchedulers(40000, DCWormsTags.UPDATE_PROCESSING, new String("test"));
40                                // if status of the tasks in READY
41                                if (task.getStatus() == DCWormsTags.READY) {
42                                        addToSchedulingPlan(plan, task);
43                                }
44                        }
45                        break;
46                }
47                return plan;
48        }
49
50}
51
Note: See TracBrowser for help on using the repository browser.