From 0c58264435f6a064e78329e17bf63d7ce1a03db7 Mon Sep 17 00:00:00 2001 From: Newnius Date: Fri, 14 Aug 2020 10:39:36 +0800 Subject: [PATCH] create overlay network adead --- src/job_manager.go | 1 + src/resource_pool.go | 36 +++++++++++++++++++++++++++++++++++- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/src/job_manager.go b/src/job_manager.go index f134849..ea9d329 100644 --- a/src/job_manager.go +++ b/src/job_manager.go @@ -189,6 +189,7 @@ func (jm *JobManager) start() { } /* release again to make sure resources are released */ + jm.stop() jm.returnResource() /* feed data to optimizer */ diff --git a/src/resource_pool.go b/src/resource_pool.go index e88b25c..c5f50f6 100644 --- a/src/resource_pool.go +++ b/src/resource_pool.go @@ -164,6 +164,40 @@ func (pool *ResourcePool) Start() { pool.batchMu.Unlock() } }() + + /* create overlay networks ahead */ + go func() { + for { + pool.networkMu.Lock() + if len(pool.networksFree) < 5 { + var network string + for { + network = "yao-net-" + strconv.Itoa(rand.Intn(999999)) + if _, ok := pool.networks[network]; !ok { + break + } + } + v := url.Values{} + v.Set("name", network) + spider := Spider{} + spider.Method = "POST" + spider.URL = "http://yao-agent-master:8000/create" + spider.Data = v + spider.ContentType = "application/x-www-form-urlencoded" + err := spider.do() + if err != nil { + log.Warn(err.Error()) + continue + } + resp := spider.getResponse() + resp.Body.Close() + pool.networksFree[network] = true + pool.networks[network] = true + } + pool.networkMu.Unlock() + time.Sleep(time.Second * 1) + } + }() } /* check dead nodes periodically */ @@ -544,7 +578,7 @@ func (pool *ResourcePool) acquireNetwork() string { func (pool *ResourcePool) releaseNetwork(network string) { pool.networkMu.Lock() - pool.networksFree[network] = true + //pool.networksFree[network] = true pool.networkMu.Unlock() }