1
0
mirror of https://github.com/newnius/YAO-scheduler.git synced 2025-06-07 14:21:55 +00:00
This commit is contained in:
Newnius 2020-06-11 10:02:02 +08:00
parent c6c7166475
commit a1102e61db
4 changed files with 10 additions and 6 deletions

View File

@ -141,7 +141,7 @@ func (X Allocation) Crossover(Y eaopt.Genome, rng *rand.Rand) {
taskToNode := map[string]string{} taskToNode := map[string]string{}
for nodeID, tasks := range X.TasksOnNode { for nodeID, tasks := range X.TasksOnNode {
for _, task := range tasks { for _, task := range tasks {
taskToNode[task.Name] = nodeID taskToNode[task.ID] = nodeID
} }
} }
@ -158,17 +158,17 @@ func (X Allocation) Crossover(Y eaopt.Genome, rng *rand.Rand) {
for _, task := range Y.(Allocation).TasksOnNode[nodeID] { for _, task := range Y.(Allocation).TasksOnNode[nodeID] {
//fmt.Println(Y.(Allocation).TasksOnNode[nodeID]) //fmt.Println(Y.(Allocation).TasksOnNode[nodeID])
idx := -1 idx := -1
nodeID2, ok := taskToNode[task.Name] nodeID2, ok := taskToNode[task.ID]
if !ok { if !ok {
log.Warn("Error", taskToNode, X.TasksOnNode, task.Name) log.Warn("Error", taskToNode, X.TasksOnNode, task.ID)
} }
for i, task2 := range X.TasksOnNode[nodeID2] { for i, task2 := range X.TasksOnNode[nodeID2] {
if task2.Name == task.Name { if task2.ID == task.ID {
idx = i idx = i
} }
} }
if idx == -1 { if idx == -1 {
log.Warn("Error 2", taskToNode, X.TasksOnNode, task.Name) log.Warn("Error 2", taskToNode, X.TasksOnNode, task.ID)
} }
//fmt.Println(X.TasksOnNode) //fmt.Println(X.TasksOnNode)
copy(X.TasksOnNode[nodeID2][idx:], X.TasksOnNode[nodeID2][idx+1:]) copy(X.TasksOnNode[nodeID2][idx:], X.TasksOnNode[nodeID2][idx+1:])

View File

@ -40,6 +40,9 @@ func serverAPI(w http.ResponseWriter, r *http.Request) {
msgSubmit.Code = 1 msgSubmit.Code = 1
msgSubmit.Error = err.Error() msgSubmit.Error = err.Error()
} else { } else {
for i := range job.Tasks {
job.Tasks[i].ID = job.Name + ":" + job.Tasks[i].Name
}
scheduler.Schedule(job) scheduler.Schedule(job)
} }
js, err := json.Marshal(msgSubmit) js, err := json.Marshal(msgSubmit)

View File

@ -965,7 +965,7 @@ func (pool *ResourcePool) doAcquireResource(job Job) []NodeStatus {
} }
for i := range job.Tasks { for i := range job.Tasks {
if job.Tasks[i].Name == task.Name { if job.Tasks[i].ID == task.ID {
ress[i] = res ress[i] = res
} }
} }

View File

@ -30,6 +30,7 @@ type Job struct {
} }
type Task struct { type Task struct {
ID string `json:"id"`
Name string `json:"name"` Name string `json:"name"`
Job string `json:"job_name"` Job string `json:"job_name"`
Image string `json:"image"` Image string `json:"image"`