250 lines
7.0 KiB
Go
250 lines
7.0 KiB
Go
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/expedition"
|
|
"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/plunder"
|
|
"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(),
|
|
plunder.NewModule(),
|
|
expedition.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!")
|
|
}
|
|
}
|