Changeset 1083 for DCWoRMS/branches/coolemall/src/schedframe
- Timestamp:
- 06/10/13 09:16:34 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
DCWoRMS/branches/coolemall/src/schedframe/scheduling/manager/tasks/JobRegistryImpl.java
r493 r1083 10 10 import org.apache.commons.logging.LogFactory; 11 11 import org.qcg.broker.schemas.resreqs.ParentType; 12 import org.qcg.broker.schemas.resreqs.Workflow; 12 13 import org.qcg.broker.schemas.resreqs.types.TaskStatesName; 13 14 … … 104 105 return availableTasks; 105 106 } 106 107 107 108 108 private List<Task> getPrecedenceConstrainedAvailableTasks(List<Task> tasks){ … … 117 117 if(task.getStatus() != (int)BrokerConstants.TASK_STATUS_UNSUBMITTED) 118 118 continue; 119 try{ 119 //the following procedure supports only one nested structure 120 Workflow w = task.getDescription().getWorkflow(); 121 if (w == null){ 122 availableTasks.add(task); 123 continue; 124 } 125 if(w.getAnd() != null) { 126 parCnt = w.getAnd().getParentOpTypeItemCount(); 127 if(parCnt == 0) 128 { 129 availableTasks.add(task); 130 } 131 else 132 { 133 for(int j = 0; j < parCnt; j++){ 134 ParentType par = w.getAnd().getParentOpTypeItem(j).getParent(); 135 if(par.getTriggerState().compareTo(TaskStatesName.FINISHED) == 0){ 136 if(!checkTaskCompletion(task.getJobId(), par.getContent())){ 137 break; 138 } 139 } 140 previousTaskSucceedCnt++; 141 } 142 143 if(previousTaskSucceedCnt == parCnt) 144 availableTasks.add(task); 145 } 146 } 147 else if(w.getOr() != null) { 148 parCnt = w.getOr().getParentOpTypeItemCount(); 149 if(parCnt == 0) 150 { 151 availableTasks.add(task); 152 } 153 else 154 { 155 for(int j = 0; j < parCnt; j++){ 156 ParentType par = w.getOr().getParentOpTypeItem(j).getParent(); 157 if(par.getTriggerState().compareTo(TaskStatesName.FINISHED) == 0){ 158 if(!checkTaskCompletion(task.getJobId(), par.getContent())){ 159 continue; 160 } 161 } 162 previousTaskSucceedCnt++; 163 } 164 165 if(previousTaskSucceedCnt > 0) 166 availableTasks.add(task); 167 } 168 } 169 else { 170 parCnt = w.getParentCount(); 171 if(parCnt == 0) 172 { 173 availableTasks.add(task); 174 } 175 else 176 { 177 for(int j = 0; j < parCnt; j++){ 178 ParentType par = w.getParent(j); 179 if(par.getTriggerState().compareTo(TaskStatesName.FINISHED) == 0){ 180 if(!checkTaskCompletion(task.getJobId(), par.getContent())){ 181 continue; 182 } 183 } 184 previousTaskSucceedCnt++; 185 } 186 187 if(previousTaskSucceedCnt == parCnt) 188 availableTasks.add(task); 189 } 190 } 191 192 /*try{ 120 193 parCnt = task.getDescription().getWorkflow().getParentCount(); 121 194 } catch(Exception e){ … … 142 215 else if (previousTaskSucceedCnt == parCnt) 143 216 availableTasks.add(task); 144 } 217 }*/ 145 218 } 146 219 return availableTasks;
Note: See TracChangeset
for help on using the changeset viewer.