任务下发
parent
abd6074895
commit
0978dcbc80
@ -0,0 +1,107 @@
|
|||||||
|
package com.docus.server.common.test;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class DispatchService {
|
||||||
|
|
||||||
|
public void dispatch() {
|
||||||
|
|
||||||
|
|
||||||
|
//获取所有空闲的终端
|
||||||
|
List<Terminal> terminalList = new ArrayList<>();
|
||||||
|
List<TaskInfo> taskInfos = this.getTaskInfos(terminalList.size());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//只采集,有优先级的
|
||||||
|
for (Terminal terminal : terminalList) {
|
||||||
|
for (TaskInfo taskInfo : taskInfos) {
|
||||||
|
//先找出有只采集的任务。
|
||||||
|
if (terminal.getOnlyTags().contains(taskInfo.getCollectType())) {
|
||||||
|
//把这个任务派给这个终端,并且把这个终端设置成繁忙
|
||||||
|
if (terminal.getPriorityTags().contains(taskInfo.getCollectType())) {
|
||||||
|
//把这个任务派给这个终端
|
||||||
|
terminal.setState(1);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//只采集没有优先级
|
||||||
|
for (Terminal terminal : terminalList) {
|
||||||
|
//把刚才已经分配任务过的采集器排除
|
||||||
|
if (terminal.getState() == 1) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (TaskInfo taskInfo : taskInfos) {
|
||||||
|
//先找出有只采集的任务。
|
||||||
|
if (terminal.getOnlyTags().contains(taskInfo.getCollectType())) {
|
||||||
|
//把这个任务派给这个终端,并且把这个终端设置成繁忙
|
||||||
|
|
||||||
|
terminal.setState(1);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//无只采集,有优先级
|
||||||
|
for (Terminal terminal : terminalList) {
|
||||||
|
|
||||||
|
//把刚才已经分配任务过的采集器排除
|
||||||
|
if (terminal.getState() == 1) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (TaskInfo taskInfo : taskInfos) {
|
||||||
|
//先找出有只采集的任务。
|
||||||
|
if (terminal.getPriorityTags().contains(taskInfo.getCollectType())) {
|
||||||
|
//把这个任务派给这个终端
|
||||||
|
terminal.setState(1);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//无只采集,无优先级
|
||||||
|
for (Terminal terminal : terminalList) {
|
||||||
|
|
||||||
|
//把刚才已经分配任务过的采集器排除
|
||||||
|
if (terminal.getState() == 1) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (TaskInfo taskInfo : taskInfos) {
|
||||||
|
//先找出有只采集的任务。
|
||||||
|
//把这个任务派给这个终端
|
||||||
|
terminal.setState(1);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void dispatchTask(List<TaskInfo> taskInfos, Terminal terminal) {
|
||||||
|
for (TaskInfo taskInfo : taskInfos) {
|
||||||
|
//先找出有只采集的任务。
|
||||||
|
if (terminal.getOnlyTags().contains(taskInfo.getCollectType())) {
|
||||||
|
//把这个任务派给这个终端
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (terminal.getPriorityTags().contains(taskInfo.getCollectType())) {
|
||||||
|
//把这个任务派给这个终端
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public List<TaskInfo> getTaskInfos(int size) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,14 @@
|
|||||||
|
package com.docus.server.common.test;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class TaskInfo {
|
||||||
|
|
||||||
|
private Long taskId;
|
||||||
|
|
||||||
|
private String collectType;
|
||||||
|
|
||||||
|
private String info;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,16 @@
|
|||||||
|
package com.docus.server.common.test;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class Terminal {
|
||||||
|
|
||||||
|
private String id;
|
||||||
|
private String collectType;
|
||||||
|
private List<String> priorityTags;
|
||||||
|
private List<String> onlyTags;
|
||||||
|
private Integer state;
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue