Blame view

actions/basic.go 926 Bytes
ee23102d   zhangqijia   支持mongo, grpc接服务器
1
2
3
4
  package actions
  
  import (
  	"fmt"
f7f4beb5   zhangqijia   新增grpc平滑关闭,修复crea...
5
  	"google.golang.org/grpc"
ee23102d   zhangqijia   支持mongo, grpc接服务器
6
  	"net"
3592dfd3   zhangqijia   重构models, 索引唯一索引
7
  	"pro2d/components/db"
286f6dbe   zhangqijia   etcd 保存服务信息
8
  	"pro2d/components/etcd"
ee23102d   zhangqijia   支持mongo, grpc接服务器
9
  	"pro2d/conf"
f7f4beb5   zhangqijia   新增grpc平滑关闭,修复crea...
10
  	"pro2d/utils"
ee23102d   zhangqijia   支持mongo, grpc接服务器
11
12
13
  )
  
  type BasicServer struct {
f7f4beb5   zhangqijia   新增grpc平滑关闭,修复crea...
14
  	SConf      *conf.SConf
286f6dbe   zhangqijia   etcd 保存服务信息
15
  	EtcdClient *etcd.EtcdClient
f7f4beb5   zhangqijia   新增grpc平滑关闭,修复crea...
16
  	GrpcServer *grpc.Server
ee23102d   zhangqijia   支持mongo, grpc接服务器
17
18
  }
  
286f6dbe   zhangqijia   etcd 保存服务信息
19
20
  func NewServer() *BasicServer {
  	return &BasicServer{}
ee23102d   zhangqijia   支持mongo, grpc接服务器
21
22
23
  }
  
  func (b *BasicServer) Start(sConf *conf.SConf) (net.Listener, error) {
286f6dbe   zhangqijia   etcd 保存服务信息
24
25
  	b.SConf = sConf
  
3592dfd3   zhangqijia   重构models, 索引唯一索引
26
  	//初始化数据库
1584eb4b   zhangqijia   修复创建唯一索引的bug
27
  	db.MongoDatabase = db.MongoClient.Database(sConf.DBName)
286f6dbe   zhangqijia   etcd 保存服务信息
28
29
30
  	//初始化etcd
  	b.EtcdClient = etcd.NewEtcdClient(conf.GlobalConf.Etcd)
  	b.EtcdClient.PutWithLeasePrefix(sConf.Name, sConf.ID, fmt.Sprintf("%s:%d", sConf.IP, sConf.Port), 10)
3592dfd3   zhangqijia   重构models, 索引唯一索引
31
  
ee23102d   zhangqijia   支持mongo, grpc接服务器
32
33
34
35
36
37
38
39
  	listing := fmt.Sprintf(":%d", sConf.Port)
  	lis, err := net.Listen("tcp", listing)
  	if err != nil {
  		return nil, err
  	}
  	return lis, err
  }
  
f7f4beb5   zhangqijia   新增grpc平滑关闭,修复crea...
40
41
42
43
  func (b *BasicServer) Stop()  {
  	utils.Sugar.Debugf("平滑关闭服务")
  	b.EtcdClient.Close()
  	b.GrpcServer.GracefulStop()
ee23102d   zhangqijia   支持mongo, grpc接服务器
44
  }