示例#1
0
func (p *Persistor) LoadServiceRegistry(name string) *ServiceRegistry.ServiceRegistry {
	log.Printf("[Persistor] Loading a service registry called [%v]\n", name)
	c := p.getRedis()
	srBytes := c.Get(fmt.Sprintf("serviceregistry-%v", name))
	buf := bytes.NewBuffer([]byte(srBytes.Val()))
	dec := gob.NewDecoder(buf)
	sr := new(ServiceRegistry.ServiceRegistry)
	dec.Decode(sr)
	sr.Name = name

	// Reconnect the up-tree references
	for _, value := range sr.Services {
		value.SetServiceRegistry(sr)
	}

	return sr
}