diff --git a/src/optimizer.go b/src/optimizer.go index 3151839..c9a8f70 100644 --- a/src/optimizer.go +++ b/src/optimizer.go @@ -77,12 +77,14 @@ func (optimizer *Optimizer) feed(job string, utils []int) { if _, ok := optimizer.predicts[jobName]; !ok { optimizer.predicts[jobName] = &OptimizerJobExecutionTime{} } - postCnt *= optimizer.heartbeatInterval - preCnt *= optimizer.heartbeatInterval + postTime := postCnt * optimizer.heartbeatInterval + preTime := preCnt * optimizer.heartbeatInterval + totalTime := len(utils) * optimizer.heartbeatInterval + predict := optimizer.predicts[jobName] - predict.Pre = ((predict.Pre * predict.Version) + preCnt) / (predict.Version + 1) - predict.Post = ((predict.Post * predict.Version) + postCnt) / (predict.Version + 1) - predict.Total = ((predict.Total * predict.Version) + len(utils)) / (predict.Version + 1) + predict.Pre = ((predict.Pre * predict.Version) + preTime) / (predict.Version + 1) + predict.Post = ((predict.Post * predict.Version) + postTime) / (predict.Version + 1) + predict.Total = ((predict.Total * predict.Version) + totalTime) / (predict.Version + 1) predict.Main = predict.Total - predict.Pre - predict.Post if predict.Main < 0 { predict.Main = 0 diff --git a/src/resource_pool.go b/src/resource_pool.go index 66c1d0c..e00247a 100644 --- a/src/resource_pool.go +++ b/src/resource_pool.go @@ -313,5 +313,6 @@ func (pool *ResourcePool) pickNode(nodes []*NodeStatus) *NodeStatus { /* sort */ + return nodes[0] }