go_dreamfactory/services/worker/main.go
2023-12-18 14:51:49 +08:00

246 lines
6.9 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/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!")
}
}