diff --git a/.gitignore b/.gitignore index cfbc91300..7d55a4ad9 100644 --- a/.gitignore +++ b/.gitignore @@ -18,4 +18,5 @@ bin/conf ./bin/gateway ./bin/worker ~$*.xlsx +*.pid cmd/luban/ \ No newline at end of file diff --git a/bin/dbservice b/bin/dbservice new file mode 100755 index 000000000..cc4ee108e Binary files /dev/null and b/bin/dbservice differ diff --git a/bin/docker_dreamfactory/docker-compose.yml b/bin/docker_dreamfactory/docker-compose.yml index c044fd657..12db05765 100644 --- a/bin/docker_dreamfactory/docker-compose.yml +++ b/bin/docker_dreamfactory/docker-compose.yml @@ -7,17 +7,17 @@ networks: # 游戏数据卷 volumes: - consuldata: - name: consuldata - redisdata: - name: redisdata - mongodata: - name: mongodata + dreamfactory_consuldata: + name: dreamfactory_consuldata + dreamfactory_redisdata: + name: dreamfactory_redisdata + dreamfactory_mongodata: + name: dreamfactory_mongodata # 服务 services: redis: image: redis:latest - container_name: redis + container_name: dreamfactory_redis ports: - '10011:6379' networks: @@ -28,14 +28,14 @@ services: command: /etc/redis/redis.conf volumes: # 持久存储redis的数据 - - redisdata:/data + - dreamfactory_redisdata:/data # 挂载本地配置文件 - ./redis.conf:/etc/redis/redis.conf # 时间同步 # - /etc/localtime:/etc/localtime consul: image: consul:latest - container_name: consul + container_name: dreamfactory_consul ports: - '10012:8500' command: consul agent -server -bootstrap -data-dir /consul/data -node=ylconsul -bind=0.0.0.0 -config-dir=/consul/config/ -client=0.0.0.0 -ui @@ -45,10 +45,10 @@ services: aliases: - discovery volumes: - - consuldata:/consul/data + - dreamfactory_consuldata:/consul/data mongo: image: mongo:latest - container_name: mongo + container_name: dreamfactory_mongo ports: - '10013:27017' networks: @@ -62,7 +62,7 @@ services: # MONGO_INITDB_ROOT_PASSWORD: li13451234 volumes: # 持久存储mongodb的数据 - - mongodata:/data/db:rw - - mongodata:/data/configdb:rw + - dreamfactory_mongodata:/data/db:rw + - dreamfactory_mongodata:/data/configdb:rw # 挂载本地配置文件 - ./mongod.conf:/etc/mongo/mongod.conf:rw \ No newline at end of file diff --git a/bin/gateway b/bin/gateway new file mode 100755 index 000000000..5690b2c4f Binary files /dev/null and b/bin/gateway differ diff --git a/bin/stup.sh b/bin/stup.sh new file mode 100755 index 000000000..08bcd3127 --- /dev/null +++ b/bin/stup.sh @@ -0,0 +1,50 @@ + #!/bin/sh + SERVICE=$2 + CMD="./$2 -conf $3" + + start(){ + echo "starting..." + nohup $CMD > /dev/null 2>&1 & + # nohup $CMD >output.log 2>&1 & + if [ $? -ne 0 ] + then + echo "start failed, please check the log!" + exit $? + else + echo $! > $SERVICE.pid + echo "start success" + fi + } + stop(){ + echo "stopping..." + kill -9 `cat $SERVICE.pid` + if [ $? -ne 0 ] + then + echo "stop failed, may be $SERVICE isn't running" + exit $? + else + rm -rf $SERVICE.pid + echo "stop success" + fi + } + restart(){ + stop&&start + } + status(){ + num=`ps -ef | grep $SERVICE | grep -v grep | wc -l` + if [ $num -eq 0 ] + then + echo "$SERVICE isn't running" + else + echo "$SERVICE is running" + fi + } + case $1 in + start) start ;; + stop) stop ;; + restart) restart ;; + status) status ;; + *) echo "Usage: $0 {start|stop|restart|status}" ;; + esac + + exit 0 \ No newline at end of file diff --git a/bin/worker b/bin/worker new file mode 100755 index 000000000..1e392f822 Binary files /dev/null and b/bin/worker differ diff --git a/cmd/bench/base.go b/cmd/bench/base.go new file mode 100644 index 000000000..37bd83a3c --- /dev/null +++ b/cmd/bench/base.go @@ -0,0 +1,72 @@ +package bench + +import ( + "fmt" + "testing" +) + +type Target struct { + //这里定义需要测试的方法 +} + +//测试基准 +type Benchmark struct { + Parallelism int //并行数目 + Data interface{} //bench 参数数据 + TargetBuilder TargetBuilder +} + +//构建基准目标 +type TargetBuilder struct { + Name string + Make func(bench Benchmark) (Target, error) +} + +func compose(parallelisms, dataSize []int, numKeys int, builders []TargetBuilder) []Benchmark { + benchmarks := make([]Benchmark, 0, len(parallelisms)*len(dataSize)*len(builders)) + + for _, p := range parallelisms { + for _, _ = range dataSize { + + for _, builder := range builders { + benchmarks = append(benchmarks, Benchmark{ + Parallelism: p, + // Data: d, + TargetBuilder: builder, + }) + } + + } + } + + return benchmarks +} + +func RunBenchmark(b *testing.B, benchmarks []Benchmark) { + for _, bench := range benchmarks { + bench := bench + b.Run(fmt.Sprintf("%s-parallelism(%d)- ", bench.TargetBuilder.Name, bench.Parallelism), func(b *testing.B) { + // target, err := bench.TargetBuilder.Make(bench) + // if err != nil { + // b.Fatalf("%s setup fail: %v", bench.TargetBuilder.Name, err) + // } + if bench.Parallelism == 0 { + b.ResetTimer() + for i := 0; i < b.N; i++ { + //执行测试方法 + + } + + } else { + b.SetParallelism(bench.Parallelism) //指定并行数目 + b.ResetTimer() + b.RunParallel(func(pb *testing.PB) { //并行执行 + for pb.Next() { + //执行测试方法 + } + }) + } + b.StopTimer() + }) + } +} diff --git a/cmd/bench/main_test.go b/cmd/bench/main_test.go new file mode 100644 index 000000000..076576295 --- /dev/null +++ b/cmd/bench/main_test.go @@ -0,0 +1,31 @@ +package bench + +import ( + "testing" +) + +func BenchmarkMarsh(b *testing.B) { + var ( + // ncpu = runtime.NumCPU() + parallelisms = []int{4, 16, 64} + dataSizes = []int{100, 1000, 10000} + numKeys = 1024 + builders = []TargetBuilder{ + { + Name: "测试名1", + Make: func(bench Benchmark) (Target, error) { + + return Target{}, nil + }, + }, + { + Name: "测试名2", + Make: func(bench Benchmark) (Target, error) { + return Target{}, nil + }, + }, + } + ) + + RunBenchmark(b, compose(parallelisms, dataSizes, numKeys, builders)) +} diff --git a/comm/imodule.go b/comm/imodule.go index 723d9ad94..95b25e01f 100644 --- a/comm/imodule.go +++ b/comm/imodule.go @@ -35,8 +35,6 @@ type ( IHero interface { //查询用户卡片数量 QueryHeroAmount(uId string, heroCfgId int32) (amount uint32) - //消耗卡片 - ConsumeCard(uId string, heroCfgId int32, count int32) (code pb.ErrorCode) //创建新英雄 CreateHero(uid string, heroCfgId ...int32) error diff --git a/lego/base/rpcx/service.go b/lego/base/rpcx/service.go index f59d47964..f541eda5e 100644 --- a/lego/base/rpcx/service.go +++ b/lego/base/rpcx/service.go @@ -11,7 +11,6 @@ import ( "go_dreamfactory/lego/sys/event" "go_dreamfactory/lego/sys/log" "go_dreamfactory/lego/sys/rpcx" - "github.com/smallnest/rpcx/client" ) diff --git a/linux_bulid.sh b/linux_bulid.sh old mode 100644 new mode 100755 diff --git a/modules/hero/module.go b/modules/hero/module.go index 98029e9dd..83683f0dc 100644 --- a/modules/hero/module.go +++ b/modules/hero/module.go @@ -43,40 +43,6 @@ func (this *Hero) CreateHero(uid string, heroCfgId ...int32) error { return this.modelHero.createMultiHero(uid, heroCfgId...) } -//消耗英雄卡 -// func (this *Hero) ConsumeCard(uId string, heroCfgId int32, count int32) (code pb.ErrorCode) { -// if count <= 0 { -// log.Errorf("attr no changed,uid: %s heroCfgId: %s count: %d", uId, heroCfgId, count) -// code = pb.ErrorCode_ReqParameterError -// return -// } - -// heroCfg := this.configure.GetHero(heroCfgId) -// if heroCfg != nil { - -// } - -// heroes := this.GetHeroList(uId) -// var curList []*pb.DBHero -// for _, v := range heroes { -// if heroCfgId == v.HeroID { -// curList = append(curList, v) -// } -// } -// if int32(len(curList)) < count { -// return pb.ErrorCode_HeroNoEnough -// } - -// for _, v := range curList { -// err := this.modelHero.consumeOneHeroCard(v.Uid, v.Id, count) -// if err != nil { -// return pb.ErrorCode_DBError -// } -// } - -// return pb.ErrorCode_Success -// } - //获取英雄 func (this *Hero) GetHero(uid, heroId string) (*pb.DBHero, pb.ErrorCode) { hero := this.modelHero.getOneHero(uid, heroId) @@ -115,12 +81,10 @@ func (this *Hero) UpdateEquipment(hero *pb.DBHero, equip []*pb.DB_Equipment) (co //英雄列表 func (this *Hero) GetHeroList(uid string) []*pb.DBHero { - // data := []*pb.DBHero{} heroes := this.modelHero.getHeroList(uid) - // for _, h := range heroes { - // h.Property = this.modelHero.PropertyCompute(uid, h.Id) - // data = append(data, h) - // } + for _, h := range heroes { + h.Property = this.modelHero.PropertyCompute(uid, h.Id) + } return heroes }