- Timestamp:
- 06/26/14 14:18:01 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
DCWoRMS/branches/coolemall/src/schedframe/scheduling/tasks/Job.java
r1374 r1396 1 1 package schedframe.scheduling.tasks; 2 3 4 import org.qcg.broker.schemas.resreqs.ParentType;5 import org.qcg.broker.schemas.resreqs.ResourceRequirements;6 import org.qcg.broker.schemas.resreqs.Workflow;7 import org.qcg.broker.schemas.resreqs.types.TaskStatesName;8 2 9 3 … … 15 9 16 10 import org.joda.time.DateTime; 11 import org.qcg.broker.schemas.resreqs.ResourceRequirements; 17 12 18 13 import qcg.shared.constants.BrokerConstants; 19 20 14 import schedframe.scheduling.WorkloadUnitHandler; 21 15 import schedframe.scheduling.manager.tasks.JobRegistryImpl; … … 210 204 } 211 205 212 private List<Task> getReadyTasks() throws NoSuchFieldException{213 214 List<Task> availableTasks = new ArrayList<Task>();215 int size = tasks.size();216 217 for(int i = 0; i < size; i++){218 int parCnt;219 int previousTaskSucceedCnt = 0;220 Task task = tasks.get(i);221 if(task.getStatus() != (int)BrokerConstants.TASK_STATUS_UNSUBMITTED)222 continue;223 //the following procedure supports only one nested structure224 Workflow w = task.getDescription().getWorkflow();225 if (w == null){226 availableTasks.add(task);227 continue;228 }229 if(w.getAnd() != null) {230 parCnt = w.getAnd().getParentOpTypeItemCount();231 if(parCnt == 0){232 availableTasks.add(task);233 }else234 {235 for(int j = 0; j < parCnt; j++){236 ParentType par = w.getAnd().getParentOpTypeItem(j).getParent();237 if(par.getTriggerState().compareTo(TaskStatesName.FINISHED) == 0){238 if(!getTask(par.getContent()).isFinished()){239 break;240 }241 }242 previousTaskSucceedCnt++;243 }244 245 if(previousTaskSucceedCnt == parCnt)246 availableTasks.add(task);247 }248 }249 else if(w.getOr() != null) {250 parCnt = w.getOr().getParentOpTypeItemCount();251 if(parCnt == 0){252 availableTasks.add(task);253 }254 else{255 for(int j = 0; j < parCnt; j++){256 ParentType par = w.getOr().getParentOpTypeItem(j).getParent();257 if(par.getTriggerState().compareTo(TaskStatesName.FINISHED) == 0){258 if(!getTask(par.getContent()).isFinished()){259 continue;260 }261 }262 previousTaskSucceedCnt++;263 }264 265 if(previousTaskSucceedCnt > 0)266 availableTasks.add(task);267 }268 }269 else {270 parCnt = w.getParentCount();271 if(parCnt == 0){272 availableTasks.add(task);273 }else{274 for(int j = 0; j < parCnt; j++){275 ParentType par = w.getParent(j);276 if(par.getTriggerState().compareTo(TaskStatesName.FINISHED) == 0){277 if(!getTask(par.getContent()).isFinished()){278 continue;279 }280 }281 previousTaskSucceedCnt++;282 }283 284 if(previousTaskSucceedCnt == parCnt)285 availableTasks.add(task);286 }287 }288 }289 return availableTasks;290 }291 292 206 }
Note: See TracChangeset
for help on using the changeset viewer.