4 Star 6 Fork 5

Humpback / humpback-center

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
reduce.go 1.25 KB
一键复制 编辑 原始数据 按行查看 历史
bolve 提交于 2017-03-25 15:35 . fix updatecontainers
package cluster
// ReduceEngine is exported
type ReduceEngine struct {
metaid string
engine *Engine
container *Container
}
// Containers is exported
// Return engine's containers of metaid
func (reduce *ReduceEngine) Containers() Containers {
if reduce.engine != nil {
return reduce.engine.Containers(reduce.metaid)
}
return Containers{}
}
// ReduceContainer is exported
func (reduce *ReduceEngine) ReduceContainer() *Container {
return reduce.container
}
// Engine is exported
func (reduce *ReduceEngine) Engine() *Engine {
return reduce.engine
}
type reduceEngines []*ReduceEngine
func (engines reduceEngines) Len() int {
return len(engines)
}
func (engines reduceEngines) Swap(i, j int) {
engines[i], engines[j] = engines[j], engines[i]
}
func (engines reduceEngines) Less(i, j int) bool {
return len(engines[i].Containers()) > len(engines[j].Containers())
}
func selectReduceEngines(metaid string, engines []*Engine) reduceEngines {
out := reduceEngines{}
for _, engine := range engines {
if engine.IsHealthy() {
containers := engine.Containers(metaid)
if len(containers) > 0 {
out = append(out, &ReduceEngine{
engine: engine,
metaid: metaid,
container: containers[0],
})
}
}
}
return out
}
Go
1
https://gitee.com/humpbacks/humpback-center.git
git@gitee.com:humpbacks/humpback-center.git
humpbacks
humpback-center
humpback-center
b392570bc023

搜索帮助