- Timestamp:
- 06/03/14 15:12:11 (11 years ago)
- Location:
- DCWoRMS/branches/coolemall/src/schedframe/scheduling/manager/tasks
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
DCWoRMS/branches/coolemall/src/schedframe/scheduling/manager/tasks/AbstractJobRegistry.java
r1151 r1362 2 2 3 3 4 import gridsim.dcworms.DCWormsTags; 5 4 6 import java.util.ArrayList; 5 7 import java.util.List; 8 import java.util.Map; 6 9 import java.util.concurrent.ConcurrentHashMap; 7 10 11 import schedframe.resources.units.ResourceUnit; 12 import schedframe.resources.units.ResourceUnitName; 8 13 import schedframe.scheduling.tasks.Job; 9 14 import schedframe.scheduling.tasks.JobInterface; 10 15 import schedframe.scheduling.tasks.Task; 11 16 import schedframe.scheduling.tasks.TaskInterface; 17 import simulator.DataCenterWorkloadSimulator; 18 import dcworms.schedframe.scheduling.ExecTask; 12 19 13 20 14 21 public abstract class AbstractJobRegistry /*extends ConcurrentHashMap<String, Job>*/ implements JobRegistry, Cloneable{ 15 22 16 private static final long serialVersionUID = 8409060063583755824L;17 18 23 19 24 protected static final ConcurrentHashMap<String, JobInterface<?>> jobs = new ConcurrentHashMap<String, JobInterface<?>>(); … … 79 84 } 80 85 86 @Override 87 public boolean pauseTask(String jobId, String taskId) { 88 ExecTask execTask = getTask(jobId, taskId); 89 if (execTask == null) { 90 return false; 91 }else{ 92 String[] ids = new String[2]; 93 ids[0] = new String(jobId); 94 ids[1] = new String(taskId); 95 DataCenterWorkloadSimulator.getEventManager().sendToAllSchedulers(0, DCWormsTags.TASK_PAUSE, ids); 96 return true; 97 } 98 } 99 100 public boolean resumeTask(String jobId, String taskId) { 101 ExecTask execTask = getTask(jobId, taskId); 102 if (execTask == null) { 103 return false; 104 }else{ 105 String[] ids = new String[2]; 106 ids[0] = new String(jobId); 107 ids[1] = new String(taskId); 108 DataCenterWorkloadSimulator.getEventManager().sendToAllSchedulers(0, DCWormsTags.TASK_RESUME, ids); 109 return true; 110 } 111 } 112 113 public boolean migrateTask(String jobId, String taskId, Map<ResourceUnitName, ResourceUnit> choosenResources) { 114 ExecTask execTask = getTask(jobId, taskId); 115 if (execTask == null) { 116 return false; 117 }else{ 118 Object[] data = new Object[3]; 119 data[0] = new String(jobId); 120 data[1] = new String(taskId); 121 data[2] = choosenResources; 122 DataCenterWorkloadSimulator.getEventManager().sendToAllSchedulers(0, DCWormsTags.TASK_MOVE, data); 123 return true; 124 } 125 } 126 127 public boolean migrateTask(String jobId, String taskId, String nodeName) { 128 // TODO Auto-generated method stub 129 return false; 130 } 131 81 132 } -
DCWoRMS/branches/coolemall/src/schedframe/scheduling/manager/tasks/JobRegistry.java
r1151 r1362 3 3 4 4 import java.util.List; 5 import java.util.Map; 5 6 6 7 import dcworms.schedframe.scheduling.ExecTask; 7 8 8 9 import schedframe.ExecutablesList; 10 import schedframe.resources.units.ResourceUnit; 11 import schedframe.resources.units.ResourceUnitName; 9 12 import schedframe.scheduling.tasks.JobInterface; 10 13 import schedframe.scheduling.tasks.TaskInterface; … … 27 30 28 31 29 public List<ExecTask> getTasks(int status) 32 public List<ExecTask> getTasks(int status); 30 33 31 public List<ExecTask> getQueuedTasks() 34 public List<ExecTask> getQueuedTasks(); 32 35 33 public List<ExecTask> getRunningTasks() 36 public List<ExecTask> getRunningTasks(); 34 37 35 public List<ExecTask> getReadyTasks() 38 public List<ExecTask> getReadyTasks(); 36 39 37 40 public List<ExecTask> getFinishedTasks(); … … 39 42 40 43 public List<? extends TaskInterface<?>> getAvailableTasks(List<JobInterface<?>> jobsList); 44 45 46 public boolean pauseTask(String jobId, String taskId); 47 48 public boolean resumeTask(String jobId, String taskId); 49 50 public boolean migrateTask(String jobId, String taskId, Map<ResourceUnitName, ResourceUnit> choosenResources); 51 52 public boolean migrateTask(String jobId, String taskId, String nodeName); 53 41 54 42 55 } -
DCWoRMS/branches/coolemall/src/schedframe/scheduling/manager/tasks/JobRegistryImpl.java
r1151 r1362 5 5 import java.util.ArrayList; 6 6 import java.util.List; 7 8 import org.apache.commons.lang.ArrayUtils; 7 import java.util.Set; 8 9 9 import org.apache.commons.logging.Log; 10 10 import org.apache.commons.logging.LogFactory; … … 21 21 22 22 public class JobRegistryImpl extends AbstractJobRegistry { 23 24 private static final long serialVersionUID = 8030555906990767342L;25 23 26 24 private static Log log = LogFactory.getLog(JobRegistryImpl.class); … … 55 53 for (ExecTask task: executables) { 56 54 if (task.getStatus() == status) { 57 List<String> visitedResource = task.getVisitedResources(); 58 if(ArrayUtils.contains(visitedResource.toArray(new String[visitedResource.size()]), context)) { 55 Set<String> visitedResource = task.getAllocatedResources().getLast().getVisitedResources(); 56 for(String res: visitedResource){ 57 if(res.contains(context)){ 58 taskList.add(task); 59 break; 60 } 61 } 62 if(task.getSchedulerName().contains(context)) { 59 63 taskList.add(task); 60 64 }
Note: See TracChangeset
for help on using the changeset viewer.