Changeset 490 for DCWoRMS/trunk/src/schedframe/scheduling/policy/global
- Timestamp:
- 10/09/12 13:58:06 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
DCWoRMS/trunk/src/schedframe/scheduling/policy/global/GlobalManagementSystem.java
r481 r490 11 11 import org.qcg.broker.schemas.schedulingplan.types.AllocationStatus; 12 12 13 import dcworms.schedframe.scheduling.ExecTask; 14 import dcworms.schedframe.scheduling.Executable; 15 13 16 import qcg.shared.constants.BrokerConstants; 14 import schedframe.events.scheduling.SchedulingEvent;15 17 import schedframe.events.scheduling.TaskArrivedEvent; 16 18 import schedframe.events.scheduling.TimerEvent; 19 import schedframe.scheduling.TaskListImpl; 17 20 import schedframe.scheduling.WorkloadUnitHandler; 18 import schedframe.scheduling.TaskListImpl;19 21 import schedframe.scheduling.plan.AllocationInterface; 20 22 import schedframe.scheduling.plan.ScheduledTaskInterface; … … 35 37 import gridsim.IO_data; 36 38 import gridsim.gssim.DCWormsTags; 37 import gssim.schedframe.scheduling.ExecTask;38 import gssim.schedframe.scheduling.Executable;39 39 40 40 public class GlobalManagementSystem extends AbstractManagementSystem { … … 80 80 81 81 registerWorkloadUnit(wu); 82 /*Job job = (Job) wu;83 jobRegistry.addJob(job);84 85 if (log.isInfoEnabled())86 log.info("Received job " + job.getId() + " at " + new DateTime(DateTimeUtilsExt.currentTimeMillis()));87 88 List<JobInterface<?>> jobsList = new ArrayList<JobInterface<?>>();89 jobsList.add(job);90 WorkloadUnitList readyWorkloadUnits = new WorkloadUnitList();91 readyWorkloadUnits.addAll(jobRegistry.getReadyTasks(jobsList));92 schedulingPlugin.placeJobsInQueues(readyWorkloadUnits, queues, getResourceManager(), moduleList);93 94 schedule(new TaskArrivedEvent());*/95 82 96 83 } … … 104 91 105 92 106 protected void schedule AvaialbleTasks(Jobjob){93 protected void schedule(JobInterface<?> job){ 107 94 List<JobInterface<?>> jobsList = new ArrayList<JobInterface<?>>(); 108 95 jobsList.add(job); … … 111 98 112 99 schedulingPlugin.placeTasksInQueues(readyTasks, queues, getResourceManager(), moduleList); 113 schedule(new TaskArrivedEvent());114 }115 116 protected void schedule(SchedulingEvent schedulingEvent) {117 118 100 SchedulingPlanInterface<?> decision = schedulingPlugin.schedule( 119 schedulingEvent, queues, getJobRegistry(), getResourceManager(), moduleList);101 new TaskArrivedEvent(), queues, getJobRegistry(), getResourceManager(), moduleList); 120 102 if (decision != null) 121 103 executeSchedulingPlan(decision); 122 104 } 123 105 124 106 public void notifyReturnedWorkloadUnit(WorkloadUnit wu) { 125 107 Executable exec = (Executable) wu; … … 133 115 try { 134 116 Job job = jobRegistry.getJob(exec.getJobId()); 135 /*Task task = job.getTask(exec.getTaskId());117 Task task = job.getTask(exec.getTaskId()); 136 118 if(exec.getProcessesId() == null){ 137 119 try { 138 120 task.setStatus(exec.getStatus()); 139 121 } catch (Exception e) { 140 // TODO Auto-generated catch block 141 e.printStackTrace(); 122 142 123 } 143 124 } else { … … 150 131 } 151 132 } 152 } */133 } 153 134 154 135 if(job.isFinished()){ … … 156 137 } 157 138 else { 158 scheduleAvaialbleTasks(job); 159 /*List<JobInterface<?>> jobs = new ArrayList<JobInterface<?>>(); 160 jobs.add(jobRegistry.getJobInfo(job.getId())); 161 WorkloadUnitList readyWorkloadUnits = new WorkloadUnitList(); 162 readyWorkloadUnits.addAll(jobRegistry.getReadyTasks(jobs)); 163 schedulingPlugin.placeJobsInQueues(readyWorkloadUnits, queues, 164 getResourceManager(), moduleList); 165 schedule(new TaskArrivedEvent());*/ 139 schedule(job); 166 140 } 167 141 … … 269 243 IO_data data = new IO_data(task, 0, resID); 270 244 scheduler.send(scheduler.getOutputPort(), GridSimTags.SCHEDULE_NOW, GridSimTags.GRIDLET_SUBMIT, data); 271 272 //scheduler.send(providerName, GridSimTags.SCHEDULE_NOW, GridSimTags.GRIDLET_SUBMIT, job);245 //scheduler.send(providerName, GridSimTags.SCHEDULE_NOW, GridSimTags.GRIDLET_SUBMIT, job); 246 273 247 if(log.isDebugEnabled()) 274 248 log.debug("Submitted job " + task.getId() + " to " + providerName); … … 278 252 class GlobalWorkloadUnitHandler implements WorkloadUnitHandler{ 279 253 280 public void handleJob(Job job){ 281 254 public void handleJob(JobInterface<?> job){ 282 255 if (log.isInfoEnabled()) 283 256 log.info("Received job " + job.getId() + " at " + new DateTime(DateTimeUtilsExt.currentTimeMillis())); 284 257 285 258 jobRegistry.addJob(job); 286 schedule AvaialbleTasks(job);259 schedule(job); 287 260 } 288 261 … … 294 267 throw new RuntimeException("Not implemented since it isn't expected that tasks are send directly to the global scheduler."); 295 268 } 296 297 269 } 298 270
Note: See TracChangeset
for help on using the changeset viewer.