Ignore:
Timestamp:
06/26/14 14:18:01 (11 years ago)
Author:
wojtekp
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • DCWoRMS/branches/coolemall/src/schedframe/scheduling/tasks/Job.java

    r1374 r1396  
    11package 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; 
    82 
    93 
     
    159 
    1610import org.joda.time.DateTime; 
     11import org.qcg.broker.schemas.resreqs.ResourceRequirements; 
    1712 
    1813import qcg.shared.constants.BrokerConstants; 
    19  
    2014import schedframe.scheduling.WorkloadUnitHandler; 
    2115import schedframe.scheduling.manager.tasks.JobRegistryImpl; 
     
    210204        } 
    211205         
    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 structure 
    224                         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                                 }else 
    234                                 { 
    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          
    292206} 
Note: See TracChangeset for help on using the changeset viewer.