67 lines
2.0 KiB
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()")
|
|
}
|