Changeset 1440 for DCWoRMS/branches/coolemall/src/schedframe/scheduling/policy/local/LocalManagementSystem.java
- Timestamp:
- 09/18/14 17:37:54 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
DCWoRMS/branches/coolemall/src/schedframe/scheduling/policy/local/LocalManagementSystem.java
r1430 r1440 95 95 96 96 int tag = ev.get_tag(); 97 SchedulingEvent event; 98 SchedulingPlanInterface<?> decision; 97 99 switch (tag) { 98 99 100 case DCWormsTags.TIMER: 100 if (pluginSupportsEvent(tag)) { 101 SchedulingEventevent = new SchedulingEvent(SchedulingEventType.TIMER);102 SchedulingPlanInterface<?>decision = schedulingPlugin.schedule(event,103 104 105 } 101 102 event = new SchedulingEvent(SchedulingEventType.TIMER); 103 decision = schedulingPlugin.schedule(event, 104 queues, jobRegistry, getResourceManager(), moduleList); 105 executeSchedulingPlan(decision); 106 106 107 sendTimerEvent(); 107 108 break; … … 111 112 try { 112 113 execTask.setStatus(DCWormsTags.READY); 113 if (pluginSupportsEvent(tag)) { 114 SchedulingEventevent = new StartTaskExecutionEvent(execTask.getJobId(), execTask.getId());115 SchedulingPlanInterface<?>decision = schedulingPlugin.schedule(event,116 117 118 } 114 115 event = new StartTaskExecutionEvent(execTask.getJobId(), execTask.getId()); 116 decision = schedulingPlugin.schedule(event, 117 queues, jobRegistry, getResourceManager(), moduleList); 118 executeSchedulingPlan(decision); 119 119 120 } catch (Exception e) { 120 121 e.printStackTrace(); … … 128 129 finalizeExecutable(execTask); 129 130 sendFinishedWorkloadUnit(execTask); 130 if (pluginSupportsEvent(tag)) { 131 SchedulingEvent event = new TaskFinishedEvent(execTask.getJobId(), execTask.getId()); 132 SchedulingPlanInterface<?> decision = schedulingPlugin.schedule(event, 133 queues, jobRegistry, getResourceManager(), moduleList); 134 executeSchedulingPlan(decision); 135 } 131 event = new TaskFinishedEvent(execTask.getJobId(), execTask.getId()); 132 decision = schedulingPlugin.schedule(event, 133 queues, jobRegistry, getResourceManager(), moduleList); 134 executeSchedulingPlan(decision); 136 135 } 137 136 … … 155 154 case DCWormsTags.TASK_REQUESTED_TIME_EXPIRED: 156 155 execTask = (Executable) ev.get_data(); 157 if (pluginSupportsEvent(tag)) { 158 SchedulingEvent event = new TaskRequestedTimeExpiredEvent(execTask.getJobId(), execTask.getId()); 159 SchedulingPlanInterface<?> decision = schedulingPlugin.schedule(event, 160 queues, jobRegistry, getResourceManager(), moduleList); 161 executeSchedulingPlan(decision); 162 } 156 event = new TaskRequestedTimeExpiredEvent(execTask.getJobId(), execTask.getId()); 157 decision = schedulingPlugin.schedule(event, 158 queues, jobRegistry, getResourceManager(), moduleList); 159 executeSchedulingPlan(decision); 163 160 break; 164 161 … … 167 164 execTask = jobRegistry.getTask(ids[0], ids[1]); 168 165 pauseTask(execTask); 169 if (pluginSupportsEvent(tag)) { 170 SchedulingEvent event = new TaskPausedEvent(ids[0], ids[1]); 171 SchedulingPlanInterface<?> decision = schedulingPlugin.schedule(event, 172 queues, jobRegistry, getResourceManager(), moduleList); 173 executeSchedulingPlan(decision); 174 } 175 } 176 break; 166 167 event = new TaskPausedEvent(ids[0], ids[1]); 168 decision = schedulingPlugin.schedule(event, 169 queues, jobRegistry, getResourceManager(), moduleList); 170 executeSchedulingPlan(decision); 171 } 172 break; 177 173 178 174 case DCWormsTags.TASK_RESUME:{ … … 180 176 execTask = jobRegistry.getTask(ids[0], ids[1]); 181 177 resumeTask(execTask, execTask.getAllocatedResources().getLast().getResourceUnits(), true); 182 if (pluginSupportsEvent(tag)) { 183 SchedulingEvent event = new TaskResumedEvent(ids[0], ids[1]); 184 SchedulingPlanInterface<?> decision = schedulingPlugin.schedule(event, 185 queues, jobRegistry, getResourceManager(), moduleList); 186 executeSchedulingPlan(decision); 187 } 188 } 189 break; 178 event = new TaskResumedEvent(ids[0], ids[1]); 179 decision = schedulingPlugin.schedule(event, 180 queues, jobRegistry, getResourceManager(), moduleList); 181 executeSchedulingPlan(decision); 182 } 183 break; 190 184 191 185 case DCWormsTags.TASK_MIGRATE:{ … … 195 189 (String)data[1]), execTask, execTask.getAllocatedResources().getLast().getResourceUnits(), (Map<ResourceUnitName, ResourceUnit>)data[2]); 196 190 scheduler.sendInternal(migrationTime, DCWormsTags.TASK_MOVE, data); 197 }198 break;191 } 192 break; 199 193 200 194 case DCWormsTags.TASK_MOVE:{ … … 202 196 execTask = jobRegistry.getTask((String)data[0], (String)data[1]); 203 197 moveTask(execTask, (Map<ResourceUnitName, ResourceUnit>)data[2]); 204 if (pluginSupportsEvent(tag)) { 205 SchedulingEvent event = new StartTaskExecutionEvent((String)data[0], (String)data[1]); 206 SchedulingPlanInterface<?> decision = schedulingPlugin.schedule(event, 207 queues, jobRegistry, getResourceManager(), moduleList); 208 executeSchedulingPlan(decision); 209 } 210 } 211 break; 212 198 199 event = new StartTaskExecutionEvent((String)data[0], (String)data[1]); 200 decision = schedulingPlugin.schedule(event, 201 queues, jobRegistry, getResourceManager(), moduleList); 202 executeSchedulingPlan(decision); 203 } 204 break; 205 206 case DCWormsTags.RESOURCE_POWER_STATE_CHANGED: 207 event = new SchedulingEvent(SchedulingEventType.RESOURCE_POWER_STATE_CHANGED); 208 decision = schedulingPlugin.schedule(event, 209 queues, jobRegistry, getResourceManager(), moduleList); 210 executeSchedulingPlan(decision); 211 break; 212 213 case DCWormsTags.RESOURCE_POWER_LIMIT_EXCEEDED: 214 event = new SchedulingEvent(SchedulingEventType.RESOURCE_POWER_LIMIT_EXCEEDED); 215 String source; 216 try{ 217 source = ev.get_data().toString(); 218 } catch(Exception e){ 219 source = null; 220 } 221 event.setSource(source); 222 decision = schedulingPlugin.schedule(event, 223 queues, jobRegistry, getResourceManager(), moduleList); 224 executeSchedulingPlan(decision); 225 break; 213 226 case DCWormsTags.TASK_EXECUTION_CHANGED: 214 227 execTask = (ExecTask) ev.get_data(); 215 228 updateTaskExecutionPhase(execTask); 216 229 break; 217 218 230 case DCWormsTags.UPDATE_PROCESSING: 219 231 updateProcessingTimes(); 220 232 break; 221 233 222 case DCWormsTags.POWER_LIMIT_EXCEEDED:223 if (pluginSupportsEvent(tag)) {224 SchedulingEvent event = new SchedulingEvent(SchedulingEventType.POWER_LIMIT_EXCEEDED);225 String source;226 try{227 source = ev.get_data().toString();228 } catch(Exception e){229 source = null;230 }231 event.setSource(source);232 SchedulingPlanInterface<?> decision = schedulingPlugin.schedule(event,233 queues, jobRegistry, getResourceManager(), moduleList);234 executeSchedulingPlan(decision);235 }236 break;237 234 default: 238 239 235 break; 240 236 } … … 301 297 302 298 public void notifyReturnedWorkloadUnit(WorkloadUnit wu) { 303 if (pluginSupportsEvent(DCWormsTags.TASK_EXECUTION_FINISHED)) { 304 305 306 307 308 } 309 310 311 299 300 SchedulingEvent event = new SchedulingEvent(SchedulingEventType.TASK_FINISHED); 301 SchedulingPlanInterface<?> decision = schedulingPlugin.schedule(event, 302 queues, jobRegistry, getResourceManager(), moduleList); 303 executeSchedulingPlan(decision); 304 305 //if(scheduler.getParent() != null){ 306 sendFinishedWorkloadUnit(wu); 307 //} 312 308 } 313 309
Note: See TracChangeset
for help on using the changeset viewer.