go_dreamfactory/services/worker/main.go
2023-01-07 09:27:25 +08:00

149 lines
3.9 KiB
Go

package main
import (
"flag"
"fmt"
"go_dreamfactory/modules/academy"
"go_dreamfactory/modules/arena"
"go_dreamfactory/modules/battle"
"go_dreamfactory/modules/chat"
"go_dreamfactory/modules/combat"
"go_dreamfactory/modules/enchant"
"go_dreamfactory/modules/equipment"
"go_dreamfactory/modules/forum"
"go_dreamfactory/modules/friend"
"go_dreamfactory/modules/gm"
"go_dreamfactory/modules/gourmet"
"go_dreamfactory/modules/growtask"
"go_dreamfactory/modules/hero"
"go_dreamfactory/modules/horoscope"
"go_dreamfactory/modules/hunting"
"go_dreamfactory/modules/items"
"go_dreamfactory/modules/library"
"go_dreamfactory/modules/linestory"
"go_dreamfactory/modules/mail"
"go_dreamfactory/modules/mainline"
"go_dreamfactory/modules/martialhall"
"go_dreamfactory/modules/mline"
"go_dreamfactory/modules/moonfantasy"
"go_dreamfactory/modules/notify"
"go_dreamfactory/modules/pagoda"
"go_dreamfactory/modules/pay"
"go_dreamfactory/modules/privilege"
"go_dreamfactory/modules/reddot"
"go_dreamfactory/modules/rtask"
"go_dreamfactory/modules/shop"
"go_dreamfactory/modules/smithy"
"go_dreamfactory/modules/sociaty"
"go_dreamfactory/modules/sys"
"go_dreamfactory/modules/task"
"go_dreamfactory/modules/troll"
"go_dreamfactory/modules/user"
"go_dreamfactory/modules/viking"
"go_dreamfactory/modules/worldtask"
"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/log"
"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(), //此服务需要接受用户的消息 需要装备网关组件
)
lego.Run(s, //运行模块
sys.NewModule(),
user.NewModule(),
items.NewModule(),
mail.NewModule(),
friend.NewModule(),
hero.NewModule(),
equipment.NewModule(),
task.NewModule(),
mainline.NewModule(),
shop.NewModule(),
notify.NewModule(),
chat.NewModule(),
gm.NewModule(),
forum.NewModule(),
pagoda.NewModule(),
gourmet.NewModule(),
martialhall.NewModule(),
rtask.NewModule(),
viking.NewModule(),
smithy.NewModule(),
moonfantasy.NewModule(),
hunting.NewModule(),
battle.NewModule(),
linestory.NewModule(),
library.NewModule(),
arena.NewModule(),
troll.NewModule(),
sociaty.NewModule(),
horoscope.NewModule(),
pay.NewModule(),
privilege.NewModule(),
growtask.NewModule(),
worldtask.NewModule(),
academy.NewModule(),
reddot.NewModule(),
combat.NewModule(),
enchant.NewModule(),
mline.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 := timewheel.OnInit(nil, timewheel.SetTick(time.Minute)); 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"]); err != nil {
panic(fmt.Sprintf("init sys.db err: %s", err.Error()))
} else {
log.Infof("init sys.db success!")
}
}