Пример #1
0
//init initialize related modules
func (sv *FrontServer) init() {
	config := sv.config
	//initialize packet processor
	a := assets.Config{}
	if err := a.Load(config.AssetsConfigPath); err != nil {
		log.Fatal(err)
	}
	packets.Init(&a)
	//initialize actor system
	if err := sv.initActors(); err != nil {
		log.Fatal(err)
	}
	//initialize models
	if err := models.Init(
		config.DBHost, config.DBCertPath,
		config.NodeIpv4Address, config.DataPath,
		config.InsertFixture); err != nil {
		log.Fatal(err)
	}
	sv.assets = &a
	//Initialize builtin actor setting
	yue.Register("/hot/:locale", yue.ActorConfig{
		SpawnConfig: yue.SpawnConfig{
			Factory: yue.InmemoryExecuterFactory{
				Constructor: actors.NewHotActor,
			},
		},
		Size: 1,
	}, 60*time.Second)
}
Пример #2
0
func (sv *FrontServer) initActors() error {
	config := sv.config
	//initialize actor system
	if err := yue.Init(&yue.Config{
		DatabaseAddress: config.DBHost,
		CertPath:        config.DBCertPath,
		HostAddress:     config.NodeIpv4Address,
	}); err != nil {
		return err
	}
	yue.Register("/hello", yue.ActorConfig{
		SpawnConfig: yue.SpawnConfig{
			Factory: yue.InmemoryExecuterFactory{
				Constructor: actors.NewHelloActor,
			},
		},
		Size: 1,
	}, "channer")
	go func() {
		var r string
		if err := yue.Call("/hello", "Hello", "actor-caller", &r); err != nil {
			log.Fatalf("err should not happen: %v %v", err)
		} else if r != "hello, actor-caller! from channer" {
			log.Fatalf("unexpected response: %v", r)
		}
	}()
	return nil
}