game_sync/worldsrv/main.go

67 lines
2.0 KiB
Go

package main
import (
"time"
"github.com/astaxie/beego/cache"
"mongo.games.com/goserver/core"
_ "mongo.games.com/goserver/core/i18n"
"mongo.games.com/goserver/core/module"
"mongo.games.com/goserver/core/schedule"
_ "mongo.games.com/game"
"mongo.games.com/game/common"
"mongo.games.com/game/etcd"
"mongo.games.com/game/model"
"mongo.games.com/game/mq"
)
var CacheMemory cache.Cache
func main() {
// 自定义配置文件
model.InitGameParam()
model.InitNormalParam()
model.InitGMAC()
model.InitGameConfig()
// package模块
defer core.ClosePackages()
core.LoadPackages("config.json")
// core hook
core.RegisteHook(core.HOOK_BEFORE_START, func() error {
model.StartupRPClient(common.CustomConfig.GetString("MgoRpcCliNet"), common.CustomConfig.GetString("MgoRpcCliAddr"), time.Duration(common.CustomConfig.GetInt("MgoRpcCliReconnInterV"))*time.Second)
etcd.Start(common.CustomConfig.GetStrings("etcdurl"), common.CustomConfig.GetString("etcduser"), common.CustomConfig.GetString("etcdpwd"), time.Minute)
mq.StartConsumer(common.CustomConfig.GetString("RabbitMQURL"), common.CustomConfig.GetString("RMQExchange"), true)
mq.StartPublisher(common.CustomConfig.GetString("RabbitMQURL"), common.CustomConfig.GetString("RMQExchange"), true, common.CustomConfig.GetInt("RMQPublishBacklog"))
var err error
CacheMemory, err = cache.NewCache("memory", `{"interval":60}`)
if err != nil {
return err
}
EtcdMgrSington.Init()
BlackListMgrSington.Init()
gameStateMgr.Init()
HorseRaceLampMgrSington.InitHorseRaceLamp()
model.InitGameKVData()
model.GetAllCoinPoolSettingData()
MsgMgrSington.InitMsg()
PlatformGameGroupMgrSington.LoadGameGroup()
return nil
})
core.RegisteHook(core.HOOK_AFTER_STOP, func() error {
EtcdMgrSington.Close()
etcd.Close()
mq.StopPublisher()
mq.StopConsumer()
model.ShutdownRPClient()
return nil
})
//启动定时任务
schedule.StartTask()
//启动业务模块
waiter := module.Start()
waiter.Wait("main()")
}