package main import ( "flag" "fmt" "go_dreamfactory/modules/academy" "go_dreamfactory/modules/achieve" "go_dreamfactory/modules/activity" "go_dreamfactory/modules/addrecharge" "go_dreamfactory/modules/arena" "go_dreamfactory/modules/atlas" "go_dreamfactory/modules/battle" "go_dreamfactory/modules/battlerecord" "go_dreamfactory/modules/buried" "go_dreamfactory/modules/caninerabbit" "go_dreamfactory/modules/capturesheep" "go_dreamfactory/modules/caravan" "go_dreamfactory/modules/catchbugs" "go_dreamfactory/modules/chat" "go_dreamfactory/modules/combat" "go_dreamfactory/modules/dailytask" "go_dreamfactory/modules/dcolor" "go_dreamfactory/modules/dispatch" "go_dreamfactory/modules/dragon" "go_dreamfactory/modules/egghunt" "go_dreamfactory/modules/enchant" "go_dreamfactory/modules/entertainment" "go_dreamfactory/modules/equipment" "go_dreamfactory/modules/forum" "go_dreamfactory/modules/friend" "go_dreamfactory/modules/gameinvite" "go_dreamfactory/modules/gm" "go_dreamfactory/modules/gourmet" "go_dreamfactory/modules/growtask" "go_dreamfactory/modules/guidance" "go_dreamfactory/modules/guildgve" "go_dreamfactory/modules/hero" "go_dreamfactory/modules/herotask" "go_dreamfactory/modules/horoscope" "go_dreamfactory/modules/hunting" "go_dreamfactory/modules/integral" "go_dreamfactory/modules/island" "go_dreamfactory/modules/items" "go_dreamfactory/modules/jielong" "go_dreamfactory/modules/kftask" "go_dreamfactory/modules/library" "go_dreamfactory/modules/linestory" "go_dreamfactory/modules/mail" "go_dreamfactory/modules/maincity" "go_dreamfactory/modules/mainline" "go_dreamfactory/modules/monkey" "go_dreamfactory/modules/moonfantasy" "go_dreamfactory/modules/moonlv" "go_dreamfactory/modules/notify" "go_dreamfactory/modules/oldtimes" "go_dreamfactory/modules/pagoda" "go_dreamfactory/modules/parkour" "go_dreamfactory/modules/passon" "go_dreamfactory/modules/pay" "go_dreamfactory/modules/practice" "go_dreamfactory/modules/privilege" "go_dreamfactory/modules/pushgiftbag" "go_dreamfactory/modules/pvp" "go_dreamfactory/modules/questionnaire" "go_dreamfactory/modules/reddot" "go_dreamfactory/modules/reputation" "go_dreamfactory/modules/shop" "go_dreamfactory/modules/shopcenter" "go_dreamfactory/modules/smithy" "go_dreamfactory/modules/sociaty" "go_dreamfactory/modules/stonehenge" "go_dreamfactory/modules/storyline" "go_dreamfactory/modules/sys" "go_dreamfactory/modules/tools" "go_dreamfactory/modules/treasuremap" "go_dreamfactory/modules/turntable" "go_dreamfactory/modules/uigame" "go_dreamfactory/modules/user" "go_dreamfactory/modules/venture" "go_dreamfactory/modules/viking" "go_dreamfactory/modules/warorder" "go_dreamfactory/modules/weektask" "go_dreamfactory/modules/whackamole" "go_dreamfactory/modules/wtask" "go_dreamfactory/services" "go_dreamfactory/sys/db" "go_dreamfactory/sys/wordfilter" "time" "go_dreamfactory/lego" "go_dreamfactory/lego/base/rpcx" "go_dreamfactory/lego/core" "go_dreamfactory/lego/sys/cron" "go_dreamfactory/lego/sys/log" "go_dreamfactory/lego/sys/pprof" "go_dreamfactory/lego/sys/timewheel" ) /* 服务类型:worker 服务描述:处理梦工厂的具体业务需求,包含 user,pack,mail,friend...功能业务模块 */ var ( conf = flag.String("conf", "./conf/worker_1.yaml", "获取需要启动的服务配置文件") //启动服务的Id ) /*服务启动的入口函数*/ func main() { flag.Parse() s := NewService( rpcx.SetConfPath(*conf), rpcx.SetVersion("1.0.0.0"), ) s.OnInstallComp( //装备组件 services.NewGateRouteComp(), //此服务需要接受用户的消息 需要装备网关组件 services.NewMatchComp(), //匹配管理组件 ) lego.Run(s, //运行模块 sys.NewModule(), user.NewModule(), items.NewModule(), mail.NewModule(), friend.NewModule(), hero.NewModule(), equipment.NewModule(), shop.NewModule(), notify.NewModule(), chat.NewModule(), gm.NewModule(), forum.NewModule(), pagoda.NewModule(), gourmet.NewModule(), viking.NewModule(), smithy.NewModule(), moonfantasy.NewModule(), hunting.NewModule(), battle.NewModule(), linestory.NewModule(), library.NewModule(), arena.NewModule(), sociaty.NewModule(), horoscope.NewModule(), pay.NewModule(), privilege.NewModule(), growtask.NewModule(), academy.NewModule(), reddot.NewModule(), combat.NewModule(), enchant.NewModule(), pvp.NewModule(), dispatch.NewModule(), atlas.NewModule(), practice.NewModule(), parkour.NewModule(), tools.NewModule(), reputation.NewModule(), oldtimes.NewModule(), caravan.NewModule(), buried.NewModule(), activity.NewModule(), guidance.NewModule(), wtask.NewModule(), passon.NewModule(), warorder.NewModule(), guildgve.NewModule(), stonehenge.NewModule(), dailytask.NewModule(), questionnaire.NewModule(), mainline.NewModule(), kftask.NewModule(), herotask.NewModule(), shopcenter.NewModule(), addrecharge.NewModule(), storyline.NewModule(), pushgiftbag.NewModule(), uigame.NewModule(), battlerecord.NewModule(), weektask.NewModule(), dragon.NewModule(), capturesheep.NewModule(), turntable.NewModule(), venture.NewModule(), achieve.NewModule(), jielong.NewModule(), entertainment.NewModule(), dcolor.NewModule(), maincity.NewModule(), treasuremap.NewModule(), gameinvite.NewModule(), caninerabbit.NewModule(), island.NewModule(), egghunt.NewModule(), catchbugs.NewModule(), moonlv.NewModule(), whackamole.NewModule(), monkey.NewModule(), integral.NewModule(), ) } func NewService(ops ...rpcx.Option) core.IService { s := new(Service) s.Configure(ops...) return s } // worker 的服务对象定义 type Service struct { services.ServiceBase } // 初始化worker需要的一些系统工具 func (this *Service) InitSys() { this.ServiceBase.InitSys() //初始化配置中心系统 每个服务都会用到的就在这个初始化就好 if err := wordfilter.OnInit(this.GetSettings().Sys["wordfilter"]); err != nil { panic(fmt.Sprintf("init sys.wordfilter err: %s", err.Error())) } else { log.Infof("init sys.wordfilter success!") } //定时系统 秒级时间轮 if err := cron.OnInit(nil); err != nil { panic(fmt.Sprintf("init sys.cron err: %s", err.Error())) } else { log.Infof("init sys.cron success!") } //定时系统 秒级时间轮 if err := timewheel.OnInit(nil, timewheel.SetTick(time.Second)); err != nil { panic(fmt.Sprintf("init sys.timewheel err: %s", err.Error())) } else { log.Infof("init sys.timewheel success!") } //存储系统 if err := db.OnInit(this.GetSettings().Sys["db"], db.SetServiceId(this.GetTag())); err != nil { panic(fmt.Sprintf("init sys.db err: %s", err.Error())) } else { log.Infof("init sys.db success!") } //性能监控 if err := pprof.OnInit(this.GetSettings().Sys["pprof"]); err != nil { panic(fmt.Sprintf("init sys.pprof err: %s", err.Error())) } else { log.Infof("init sys.pprof success!") } }