158 lines
4.2 KiB
Go
158 lines
4.2 KiB
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"go_dreamfactory/modules/academy"
|
|
"go_dreamfactory/modules/arena"
|
|
"go_dreamfactory/modules/atlas"
|
|
"go_dreamfactory/modules/battle"
|
|
"go_dreamfactory/modules/chat"
|
|
"go_dreamfactory/modules/combat"
|
|
"go_dreamfactory/modules/dispatch"
|
|
"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/mline"
|
|
"go_dreamfactory/modules/moonfantasy"
|
|
"go_dreamfactory/modules/notify"
|
|
"go_dreamfactory/modules/pagoda"
|
|
"go_dreamfactory/modules/pay"
|
|
"go_dreamfactory/modules/practice"
|
|
"go_dreamfactory/modules/privilege"
|
|
"go_dreamfactory/modules/pvp"
|
|
"go_dreamfactory/modules/reddot"
|
|
"go_dreamfactory/modules/reputation"
|
|
"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/tools"
|
|
"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(),
|
|
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(),
|
|
pvp.NewModule(),
|
|
dispatch.NewModule(),
|
|
atlas.NewModule(),
|
|
practice.NewModule(),
|
|
tools.NewModule(),
|
|
reputation.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.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!")
|
|
}
|
|
}
|