Commit f74e34e3c8405cbeca8e04cc549eb68cb58a3e5b
1 parent
329a4f25
fix: 批量删除装备
docker安装部署
Showing
15 changed files
with
64 additions
and
27 deletions
Show diff stats
.gitignore
Makefile
... | ... | @@ -10,6 +10,12 @@ WORKSPACE=. |
10 | 10 | GEN_CLIENT=${WORKSPACE}/luban_examples/Tools/Luban.Client/Luban.Client.dll |
11 | 11 | CONF_ROOT=${WORKSPACE}/DesignerConfigs |
12 | 12 | |
13 | +# deploy | |
14 | +DEPLOYIP=192.168.0.100 | |
15 | +DEPLOYNAME=zhaolu | |
16 | +DEPLOYPASSWD=zhaolu | |
17 | +DEPLOYDIR=/Users/zhaolu/Documents/pro2d | |
18 | + | |
13 | 19 | test: |
14 | 20 | go run cmd/test/main.go |
15 | 21 | http: |
... | ... | @@ -35,7 +41,7 @@ doc: |
35 | 41 | proto: |
36 | 42 | protoc -I./protos --go_out=./protos --go-grpc_out=./protos ./protos/*proto |
37 | 43 | protoc-go-inject-tag -input=./pb/*.pb.go |
38 | - python3 tools/generator.py | |
44 | + python tools/generator.py #python3 | |
39 | 45 | |
40 | 46 | excel: |
41 | 47 | cd ${WORKSPACE}/DesignerConfigs && git pull && cd - |
... | ... | @@ -55,6 +61,8 @@ pull: |
55 | 61 | docker-build: |
56 | 62 | # docker build -t my-tab -f /abc/defg/my-dockerfile /context-dir |
57 | 63 | docker build -t pro2d -f docker/Dockerfile ./ --force-rm |
64 | +docker-save: | |
65 | + docker save pro2d > docker/pro2d.tar | |
58 | 66 | |
59 | 67 | docker-http: |
60 | 68 | docker rm -f http-pro2d |
... | ... | @@ -64,11 +72,14 @@ docker-game: |
64 | 72 | docker rm -f game-pro2d |
65 | 73 | docker run --restart=always -d -p 8850:8850 --name game-pro2d pro2d ./game |
66 | 74 | |
67 | -save: docker-build | |
68 | - docker save pro2d > docker/pro2d.tar | |
69 | - scp docker/* zhaolu@192.168.0.100:/Users/zhaolu/Documents/pro2d #passwd: zhaolu | |
75 | +deploy: | |
76 | + scp docker/* ${DEPLOYNAME}@${DEPLOYIP}:${DEPLOYDIR} #passwd: zhaolu | |
77 | + rm -f docker/pro2d.tar | |
78 | + ssh ${DEPLOYNAME}@${DEPLOYIP} "/Users/zhaolu/Documents/pro2d/restart.sh" | |
70 | 79 | |
80 | +deploy-to: docker-build docker-save | |
81 | + scp docker/* ${DEPLOYNAME}@${DEPLOYIP}:${DEPLOYDIR} #passwd: zhaolu | |
71 | 82 | rm -f docker/pro2d.tar |
72 | - ssh zhaolu@192.168.0.100 "/Users/zhaolu/Documents/pro2d/restart.sh" | |
83 | + ssh ${DEPLOYNAME}@${DEPLOYIP} "${DEPLOYDIR}/restart.sh" | |
73 | 84 | |
74 | 85 | .PHONY: all build protos test cert plugin doc proto pull |
75 | 86 | \ No newline at end of file | ... | ... |
README.md
... | ... | @@ -46,14 +46,18 @@ |
46 | 46 | ``` |
47 | 47 | |
48 | 48 | ## 环境安装 |
49 | +protoc二进制下载地址: https://github.com/protocolbuffers/protobuf/releases/tag/v21.0-rc2 | |
50 | +>win下载3.8版本。其他平台随意,没遇到问题。 | |
51 | + | |
49 | 52 | protoc-go-inject-tag: 目的是往protos文件中打入自定义标签 |
50 | 53 | ```shell |
51 | 54 | $ go get github.com/favadi/protoc-go-inject-tag |
52 | 55 | ``` |
53 | 56 | |
54 | -etcd | |
57 | +protoc-go & etcd | |
55 | 58 | ```shell |
56 | 59 | $ go get go.etcd.io/etcd/client/v3 |
60 | +$ go get google.golang.org/protobuf/cmd/protoc-gen-go | |
57 | 61 | $ go install google.golang.org/protobuf/cmd/protoc-gen-go |
58 | 62 | $ go get google.golang.org/grpc/cmd/protoc-gen-go-grpc |
59 | 63 | $ go install google.golang.org/grpc/cmd/protoc-gen-go-grpc | ... | ... |
cmd/gameserver/action/RoleAction.go
... | ... | @@ -4,6 +4,7 @@ package action |
4 | 4 | import ( |
5 | 5 | "fmt" |
6 | 6 | "github.com/golang/protobuf/proto" |
7 | + "go.mongodb.org/mongo-driver/bson" | |
7 | 8 | "pro2d/common" |
8 | 9 | "pro2d/common/components" |
9 | 10 | "pro2d/common/db/mongoproxy" |
... | ... | @@ -161,12 +162,18 @@ func EquipmentDelRpc(role *models.RoleModel, msg components.IMessage) (int32, in |
161 | 162 | logger.Error("loginRpc err: %v", err) |
162 | 163 | return 1, nil |
163 | 164 | } |
164 | - | |
165 | - if err := mongoproxy.DelOne("equipment", "id", req.Id); err != nil { | |
165 | + filter := make(bson.D, 5) | |
166 | + for _, id := range req.Id { | |
167 | + filter = append(filter, bson.E{Key: "id", Value: id}) | |
168 | + } | |
169 | + if err := mongoproxy.DelMany("equipment", filter); err != nil { | |
166 | 170 | logger.Error(err.Error()) |
167 | 171 | return 2, nil |
168 | 172 | } |
169 | - delete(role.Equipments, req.Id) | |
173 | + | |
174 | + for _, id := range req.Id { | |
175 | + delete(role.Equipments, id) | |
176 | + } | |
170 | 177 | |
171 | 178 | return 0, nil |
172 | 179 | } | ... | ... |
cmd/gameserver/main.go
... | ... | @@ -17,7 +17,7 @@ func main() { |
17 | 17 | signal.Notify(stopChan, syscall.SIGTERM, syscall.SIGINT, syscall.SIGKILL) |
18 | 18 | |
19 | 19 | userChan := make(chan os.Signal) |
20 | - signal.Notify(userChan, syscall.SIGUSR1, syscall.SIGUSR2) | |
20 | + signal.Notify(userChan, syscall.SIGQUIT) | |
21 | 21 | |
22 | 22 | common.GlobalSconf = common.GlobalConf.GameConf |
23 | 23 | s, err1 := service.NewGameServer() | ... | ... |
common/components/conn.go
common/db/mongoproxy/mongoplugin.go
... | ... | @@ -89,6 +89,11 @@ func DelOne(coll string, key string, value interface{}) error { |
89 | 89 | return err |
90 | 90 | } |
91 | 91 | |
92 | +func DelMany(coll string, filter bson.D) error { | |
93 | + _, err := mongoDatabase.Collection(coll).DeleteMany(context.TODO(), filter, nil) | |
94 | + return err | |
95 | +} | |
96 | + | |
92 | 97 | func GetBsonD(key string, value interface{}) interface{} { |
93 | 98 | return bson.D{{key, value}} |
94 | 99 | } | ... | ... |
docker/restart.sh
... | ... | @@ -15,7 +15,7 @@ require ( |
15 | 15 | go.etcd.io/etcd/api/v3 v3.5.2 |
16 | 16 | go.etcd.io/etcd/client/v3 v3.5.2 |
17 | 17 | go.mongodb.org/mongo-driver v1.8.3 |
18 | - google.golang.org/protobuf v1.27.1 | |
18 | + google.golang.org/protobuf v1.28.0 | |
19 | 19 | gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b |
20 | 20 | ) |
21 | 21 | |
... | ... | @@ -28,6 +28,7 @@ require ( |
28 | 28 | github.com/aliyun/credentials-go v1.2.1 // indirect |
29 | 29 | github.com/coreos/go-semver v0.3.0 // indirect |
30 | 30 | github.com/coreos/go-systemd/v22 v22.3.2 // indirect |
31 | + github.com/favadi/protoc-go-inject-tag v1.3.0 // indirect | |
31 | 32 | github.com/gin-contrib/sse v0.1.0 // indirect |
32 | 33 | github.com/go-playground/locales v0.13.0 // indirect |
33 | 34 | github.com/go-playground/universal-translator v0.17.0 // indirect |
... | ... | @@ -60,6 +61,7 @@ require ( |
60 | 61 | golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f // indirect |
61 | 62 | google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c // indirect |
62 | 63 | google.golang.org/grpc v1.38.0 // indirect |
64 | + google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.2.0 // indirect | |
63 | 65 | gopkg.in/ini.v1 v1.66.4 // indirect |
64 | 66 | gopkg.in/yaml.v2 v2.4.0 // indirect |
65 | 67 | ) | ... | ... |
... | ... | @@ -62,6 +62,8 @@ github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.m |
62 | 62 | github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= |
63 | 63 | github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= |
64 | 64 | github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= |
65 | +github.com/favadi/protoc-go-inject-tag v1.3.0 h1:JPrmsmc/uBShG85uY5xGZIa5WJ0IaNZn6LZhQR9tIQE= | |
66 | +github.com/favadi/protoc-go-inject-tag v1.3.0/go.mod h1:SSkUBgfqw2IJ2p7NPNKWk0Idwxt/qIt2LQgFPUgRGtc= | |
65 | 67 | github.com/garyburd/redigo v1.6.3 h1:HCeeRluvAgMusMomi1+6Y5dmFOdYV/JzoRrrbFlkGIc= |
66 | 68 | github.com/garyburd/redigo v1.6.3/go.mod h1:rTb6epsqigu3kYKBnaF028A7Tf/Aw5s0cqA47doKKqw= |
67 | 69 | github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= |
... | ... | @@ -354,6 +356,8 @@ google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM |
354 | 356 | google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= |
355 | 357 | google.golang.org/grpc v1.38.0 h1:/9BgsAsa5nWe26HqOlvlgJnqBuktYOLCgjCPqsa56W0= |
356 | 358 | google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= |
359 | +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.2.0 h1:TLkBREm4nIsEcexnCjgQd5GQWaHcqMzwQV0TX9pq8S0= | |
360 | +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.2.0/go.mod h1:DNq5QpG7LJqD2AamLZ7zvKE0DEpVl2BSEVjFycAAjRY= | |
357 | 361 | google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= |
358 | 362 | google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= |
359 | 363 | google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= |
... | ... | @@ -365,8 +369,9 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD |
365 | 369 | google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= |
366 | 370 | google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= |
367 | 371 | google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= |
368 | -google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ= | |
369 | 372 | google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= |
373 | +google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= | |
374 | +google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= | |
370 | 375 | gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= |
371 | 376 | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= |
372 | 377 | gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ... | ... |
pb/account.pb.go
pb/game.pb.go
1 | 1 | // Code generated by protoc-gen-go. DO NOT EDIT. |
2 | 2 | // versions: |
3 | -// protoc-gen-go v1.26.0 | |
4 | -// protoc v3.17.3 | |
3 | +// protoc-gen-go v1.28.0 | |
4 | +// protoc v3.8.0 | |
5 | 5 | // source: game.proto |
6 | 6 | |
7 | 7 | package pb |
... | ... | @@ -820,7 +820,7 @@ type EquipmentDelReq struct { |
820 | 820 | sizeCache protoimpl.SizeCache |
821 | 821 | unknownFields protoimpl.UnknownFields |
822 | 822 | |
823 | - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` | |
823 | + Id []string `protobuf:"bytes,1,rep,name=id,proto3" json:"id,omitempty"` | |
824 | 824 | } |
825 | 825 | |
826 | 826 | func (x *EquipmentDelReq) Reset() { |
... | ... | @@ -855,11 +855,11 @@ func (*EquipmentDelReq) Descriptor() ([]byte, []int) { |
855 | 855 | return file_game_proto_rawDescGZIP(), []int{14} |
856 | 856 | } |
857 | 857 | |
858 | -func (x *EquipmentDelReq) GetId() string { | |
858 | +func (x *EquipmentDelReq) GetId() []string { | |
859 | 859 | if x != nil { |
860 | 860 | return x.Id |
861 | 861 | } |
862 | - return "" | |
862 | + return nil | |
863 | 863 | } |
864 | 864 | |
865 | 865 | //ResponseCmd EquipmentAddRsp |
... | ... | @@ -983,7 +983,7 @@ var file_game_proto_rawDesc = []byte{ |
983 | 983 | 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x48, 0x65, |
984 | 984 | 0x72, 0x6f, 0x52, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x22, 0x21, 0x0a, 0x0f, 0x45, 0x71, 0x75, 0x69, |
985 | 985 | 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x69, |
986 | - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x3a, 0x0a, 0x0f, 0x45, | |
986 | + 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x3a, 0x0a, 0x0f, 0x45, | |
987 | 987 | 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x52, 0x73, 0x70, 0x12, 0x27, |
988 | 988 | 0x0a, 0x05, 0x65, 0x71, 0x75, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, |
989 | 989 | 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, | ... | ... |
pb/models.pb.go
pb/protocode.pb.go