package org.act.tstream.schedule.default_assign.Selector;
import org.act.tstream.schedule.default_assign.ResourceWorkerSlot;
import org.act.tstream.schedule.default_assign.TaskGankerContext;
public class ComponentNumSelector extends AbstractSelector {
public ComponentNumSelector(final TaskGankerContext context) {
super(context);
// TODO Auto-generated constructor stub
this.workerComparator = new WorkerComparator() {
@Override
public int compare(ResourceWorkerSlot o1, ResourceWorkerSlot o2) {
// TODO Auto-generated method stub
int o1Num = context.getComponentNumOnWorker(o1, name);
int o2Num = context.getComponentNumOnWorker(o2, name);
if (o1Num == o2Num)
return 0;
return o1Num > o2Num ? 1 : -1;
}
};
this.supervisorComparator = new WorkerComparator() {
@Override
public int compare(ResourceWorkerSlot o1, ResourceWorkerSlot o2) {
// TODO Auto-generated method stub
int o1Num = context.getComponentNumOnSupervisor(o1.getNodeId(),
name);
int o2Num = context.getComponentNumOnSupervisor(o2.getNodeId(),
name);
if (o1Num == o2Num)
return 0;
return o1Num > o2Num ? 1 : -1;
}
};
}
}