manager.go 580 字节
Newer Older
E
eoLinker API Management 已提交
1 2 3 4
package balance

import (
	"sync"
Y
Your Name 已提交
5 6

	"github.com/eolinker/goku-api-gateway/config"
E
eoLinker API Management 已提交
7 8 9
)

var manager = &Manager{
Y
Your Name 已提交
10
	locker:   sync.RWMutex{},
Y
Your Name 已提交
11
	balances: make(map[string]*config.BalanceConfig),
E
eoLinker API Management 已提交
12 13
}

Y
Your Name 已提交
14
//Manager manager
E
eoLinker API Management 已提交
15
type Manager struct {
Y
Your Name 已提交
16
	locker   sync.RWMutex
Y
Your Name 已提交
17
	balances map[string]*config.BalanceConfig
E
eoLinker API Management 已提交
18 19
}

Y
Your Name 已提交
20
func (m *Manager) set(balances map[string]*config.BalanceConfig) {
E
eoLinker API Management 已提交
21 22 23 24 25
	m.locker.Lock()
	m.balances = balances
	m.locker.Unlock()
}

Y
Your Name 已提交
26
func (m *Manager) get(name string) (*config.BalanceConfig, bool) {
E
eoLinker API Management 已提交
27 28
	m.locker.RLock()

Y
Your Name 已提交
29
	b, has := m.balances[name]
E
eoLinker API Management 已提交
30 31
	m.locker.RUnlock()

Y
Your Name 已提交
32
	return b, has
E
eoLinker API Management 已提交
33
}