Merge remote-tracking branch 'origin/errcode' into errcode

This commit is contained in:
withchao 2023-03-09 15:53:30 +08:00
commit 2cd0b34f5b
17 changed files with 65 additions and 66 deletions

View File

@ -1,17 +1,22 @@
package main package main
import ( import (
"OpenIM/internal/push"
"OpenIM/pkg/common/cmd" "OpenIM/pkg/common/cmd"
"OpenIM/pkg/common/config"
"fmt" "fmt"
"os" "os"
) )
func main() { func main() {
pushCmd := cmd.NewPushCmd() pushCmd := cmd.NewRpcCmd()
pushCmd.AddPortFlag() pushCmd.AddPortFlag()
pushCmd.AddPrometheusPortFlag() pushCmd.AddPrometheusPortFlag()
pushCmd.AddPush() if err := pushCmd.Exec(); err != nil {
if err := pushCmd.Execute(); err != nil { fmt.Println(err.Error())
os.Exit(1)
}
if err := pushCmd.StartSvr(config.Config.RpcRegisterName.OpenImPushName, push.Start); err != nil {
fmt.Println(err.Error()) fmt.Println(err.Error())
os.Exit(1) os.Exit(1)
} }

View File

@ -9,10 +9,10 @@ import (
) )
func main() { func main() {
authCmd := cmd.NewAuthCmd() authCmd := cmd.NewRpcCmd()
authCmd.AddPortFlag() authCmd.AddPortFlag()
authCmd.AddPrometheusPortFlag() authCmd.AddPrometheusPortFlag()
if err := authCmd.Execute(); err != nil { if err := authCmd.Exec(); err != nil {
fmt.Println(err.Error()) fmt.Println(err.Error())
os.Exit(1) os.Exit(1)
} }

View File

@ -12,7 +12,11 @@ func main() {
rpcCmd := cmd.NewRpcCmd() rpcCmd := cmd.NewRpcCmd()
rpcCmd.AddPortFlag() rpcCmd.AddPortFlag()
rpcCmd.AddPrometheusPortFlag() rpcCmd.AddPrometheusPortFlag()
if err := rpcCmd.Exec(config.Config.RpcRegisterName.OpenImConversationName, conversation.Start); err != nil { if err := rpcCmd.Exec(); err != nil {
fmt.Println(err.Error())
os.Exit(1)
}
if err := rpcCmd.StartSvr(config.Config.RpcRegisterName.OpenImConversationName, conversation.Start); err != nil {
fmt.Println(err.Error()) fmt.Println(err.Error())
os.Exit(1) os.Exit(1)
} }

View File

@ -12,7 +12,11 @@ func main() {
rpcCmd := cmd.NewRpcCmd() rpcCmd := cmd.NewRpcCmd()
rpcCmd.AddPortFlag() rpcCmd.AddPortFlag()
rpcCmd.AddPrometheusPortFlag() rpcCmd.AddPrometheusPortFlag()
if err := rpcCmd.Exec(config.Config.RpcRegisterName.OpenImFriendName, friend.Start); err != nil { if err := rpcCmd.Exec(); err != nil {
fmt.Println(err.Error())
os.Exit(1)
}
if err := rpcCmd.StartSvr(config.Config.RpcRegisterName.OpenImFriendName, friend.Start); err != nil {
fmt.Println(err.Error()) fmt.Println(err.Error())
os.Exit(1) os.Exit(1)
} }

View File

@ -12,7 +12,11 @@ func main() {
rpcCmd := cmd.NewRpcCmd() rpcCmd := cmd.NewRpcCmd()
rpcCmd.AddPortFlag() rpcCmd.AddPortFlag()
rpcCmd.AddPrometheusPortFlag() rpcCmd.AddPrometheusPortFlag()
if err := rpcCmd.Exec(config.Config.RpcRegisterName.OpenImGroupName, friend.Start); err != nil { if err := rpcCmd.Exec(); err != nil {
fmt.Println(err.Error())
os.Exit(1)
}
if err := rpcCmd.StartSvr(config.Config.RpcRegisterName.OpenImGroupName, friend.Start); err != nil {
fmt.Println(err.Error()) fmt.Println(err.Error())
os.Exit(1) os.Exit(1)
} }

View File

@ -12,7 +12,11 @@ func main() {
rpcCmd := cmd.NewRpcCmd() rpcCmd := cmd.NewRpcCmd()
rpcCmd.AddPortFlag() rpcCmd.AddPortFlag()
rpcCmd.AddPrometheusPortFlag() rpcCmd.AddPrometheusPortFlag()
if err := rpcCmd.Exec(config.Config.RpcRegisterName.OpenImMsgName, msg.Start); err != nil { if err := rpcCmd.Exec(); err != nil {
fmt.Println(err.Error())
os.Exit(1)
}
if err := rpcCmd.StartSvr(config.Config.RpcRegisterName.OpenImMsgName, msg.Start); err != nil {
fmt.Println(err.Error()) fmt.Println(err.Error())
os.Exit(1) os.Exit(1)
} }

View File

@ -12,7 +12,11 @@ func main() {
rpcCmd := cmd.NewRpcCmd() rpcCmd := cmd.NewRpcCmd()
rpcCmd.AddPortFlag() rpcCmd.AddPortFlag()
rpcCmd.AddPrometheusPortFlag() rpcCmd.AddPrometheusPortFlag()
if err := rpcCmd.Exec(config.Config.RpcRegisterName.OpenImThirdName, third.Start); err != nil { if err := rpcCmd.Exec(); err != nil {
fmt.Println(err.Error())
os.Exit(1)
}
if err := rpcCmd.StartSvr(config.Config.RpcRegisterName.OpenImThirdName, third.Start); err != nil {
fmt.Println(err.Error()) fmt.Println(err.Error())
os.Exit(1) os.Exit(1)
} }

View File

@ -12,7 +12,11 @@ func main() {
rpcCmd := cmd.NewRpcCmd() rpcCmd := cmd.NewRpcCmd()
rpcCmd.AddPortFlag() rpcCmd.AddPortFlag()
rpcCmd.AddPrometheusPortFlag() rpcCmd.AddPrometheusPortFlag()
if err := rpcCmd.Exec(config.Config.RpcRegisterName.OpenImUserName, user.Start); err != nil { if err := rpcCmd.Exec(); err != nil {
fmt.Println(err.Error())
os.Exit(1)
}
if err := rpcCmd.StartSvr(config.Config.RpcRegisterName.OpenImUserName, user.Start); err != nil {
fmt.Println(err.Error()) fmt.Println(err.Error())
os.Exit(1) os.Exit(1)
} }

View File

@ -67,6 +67,7 @@ func (m *MsgTransfer) initPrometheus() {
func (m *MsgTransfer) Start(prometheusPort int) error { func (m *MsgTransfer) Start(prometheusPort int) error {
var wg sync.WaitGroup var wg sync.WaitGroup
wg.Add(4) wg.Add(4)
fmt.Println("start msg transfer", "prometheusPort:", prometheusPort)
if config.Config.ChatPersistenceMysql { if config.Config.ChatPersistenceMysql {
go m.persistentCH.persistentConsumerGroup.RegisterHandleAndConsumer(m.persistentCH) go m.persistentCH.persistentConsumerGroup.RegisterHandleAndConsumer(m.persistentCH)
} else { } else {

View File

@ -13,10 +13,11 @@ import (
"github.com/OpenIMSDK/openKeeper" "github.com/OpenIMSDK/openKeeper"
grpcPrometheus "github.com/grpc-ecosystem/go-grpc-prometheus" grpcPrometheus "github.com/grpc-ecosystem/go-grpc-prometheus"
"google.golang.org/grpc" "google.golang.org/grpc"
"google.golang.org/grpc/credentials/insecure"
"net" "net"
) )
func start(rpcPort int, rpcRegisterName string, prometheusPort int, rpcFn func(client discoveryregistry.SvcDiscoveryRegistry, server *grpc.Server) error, options []grpc.ServerOption) error { func Start(rpcPort int, rpcRegisterName string, prometheusPort int, rpcFn func(client discoveryregistry.SvcDiscoveryRegistry, server *grpc.Server) error, options ...grpc.ServerOption) error {
fmt.Println("start", rpcRegisterName, "rpc server, port: ", rpcPort, "prometheusPort:", prometheusPort, ", OpenIM version: ", config.Version) fmt.Println("start", rpcRegisterName, "rpc server, port: ", rpcPort, "prometheusPort:", prometheusPort, ", OpenIM version: ", config.Version)
log.NewPrivateLog(constant.LogFileName) log.NewPrivateLog(constant.LogFileName)
listener, err := net.Listen("tcp", fmt.Sprintf("%s:%d", config.Config.ListenIP, rpcPort)) listener, err := net.Listen("tcp", fmt.Sprintf("%s:%d", config.Config.ListenIP, rpcPort))
@ -47,19 +48,24 @@ func start(rpcPort int, rpcRegisterName string, prometheusPort int, rpcFn func(c
} }
srv := grpc.NewServer(options...) srv := grpc.NewServer(options...)
defer srv.GracefulStop() defer srv.GracefulStop()
err = zkClient.Register(rpcRegisterName, registerIP, rpcPort) err = zkClient.Register(rpcRegisterName, registerIP, rpcPort, grpc.WithTransportCredentials(insecure.NewCredentials()))
if err != nil { if err != nil {
return utils.Wrap1(err) return utils.Wrap1(err)
} }
if config.Config.Prometheus.Enable && prometheusPort != 0 { go func() {
err := prome.StartPrometheusSrv(prometheusPort) if config.Config.Prometheus.Enable && prometheusPort != 0 {
if err != nil { if err := prome.StartPrometheusSrv(prometheusPort); err != nil {
return err panic(err.Error())
}
} }
}()
err = srv.Serve(listener)
if err != nil {
return utils.Wrap1(err)
} }
return rpcFn(zkClient, srv) return rpcFn(zkClient, srv)
} }
func Start(rpcPort int, rpcRegisterName string, prometheusPort int, rpcFn func(client discoveryregistry.SvcDiscoveryRegistry, server *grpc.Server) error, options ...grpc.ServerOption) error { //func Start(rpcPort int, rpcRegisterName string, prometheusPort int, rpcFn func(client discoveryregistry.SvcDiscoveryRegistry, server *grpc.Server) error, options ...grpc.ServerOption) error {
return start(rpcPort, rpcRegisterName, prometheusPort, rpcFn, options) // return start(rpcPort, rpcRegisterName, prometheusPort, rpcFn, options)
} //}

View File

@ -1,22 +0,0 @@
package cmd
import (
"OpenIM/internal/push"
"OpenIM/internal/startrpc"
"OpenIM/pkg/common/config"
"github.com/spf13/cobra"
)
type PushCmd struct {
*AuthCmd
}
func NewPushCmd() *PushCmd {
return &PushCmd{NewAuthCmd()}
}
func (r *PushCmd) AddPush() {
r.Command.RunE = func(cmd *cobra.Command, args []string) error {
return startrpc.Start(r.getPortFlag(cmd), config.Config.RpcRegisterName.OpenImPushName, r.getPrometheusPortFlag(cmd), push.Start)
}
}

View File

@ -23,23 +23,11 @@ func NewRootCmd() (rootCmd *RootCmd) {
}, },
} }
rootCmd.Command = c rootCmd.Command = c
rootCmd.init() rootCmd.addConfFlag()
return rootCmd return rootCmd
} }
func (r *RootCmd) AddRunE(f func(cmd RootCmd) error) { func (r *RootCmd) addConfFlag() {
r.Command.RunE = func(cmd *cobra.Command, args []string) error {
return f(*r)
}
}
func (r *RootCmd) AddRpc(f func(port, prometheusPort int) error) {
r.Command.RunE = func(cmd *cobra.Command, args []string) error {
return f(r.getPortFlag(cmd), r.getPrometheusPortFlag(cmd))
}
}
func (r *RootCmd) init() {
r.Command.Flags().StringP(constant.FlagConf, "c", "", "Path to config file folder") r.Command.Flags().StringP(constant.FlagConf, "c", "", "Path to config file folder")
} }

View File

@ -7,16 +7,16 @@ import (
"google.golang.org/grpc" "google.golang.org/grpc"
) )
type AuthCmd struct { type RpcCmd struct {
*RootCmd *RootCmd
} }
func NewAuthCmd() *AuthCmd { func NewRpcCmd() *RpcCmd {
authCmd := &AuthCmd{NewRootCmd()} authCmd := &RpcCmd{NewRootCmd()}
return authCmd return authCmd
} }
func (a *AuthCmd) Exec() error { func (a *RpcCmd) Exec() error {
a.Command.Run = func(cmd *cobra.Command, args []string) { a.Command.Run = func(cmd *cobra.Command, args []string) {
a.port = a.getPortFlag(cmd) a.port = a.getPortFlag(cmd)
a.prometheusPort = a.getPrometheusPortFlag(cmd) a.prometheusPort = a.getPrometheusPortFlag(cmd)
@ -24,6 +24,6 @@ func (a *AuthCmd) Exec() error {
return a.Execute() return a.Execute()
} }
func (a *AuthCmd) StartSvr(name string, rpcFn func(client discoveryregistry.SvcDiscoveryRegistry, server *grpc.Server) error) error { func (a *RpcCmd) StartSvr(name string, rpcFn func(client discoveryregistry.SvcDiscoveryRegistry, server *grpc.Server) error) error {
return startrpc.Start(a.GetPortFlag(), name, a.GetPrometheusPortFlag(), rpcFn) return startrpc.Start(a.GetPortFlag(), name, a.GetPrometheusPortFlag(), rpcFn)
} }

View File

@ -515,7 +515,6 @@ func (c *config) initConfig(config interface{}, configName, configFolderPath str
return err return err
} }
configPath = filepath.Join(Root, "config", configName) configPath = filepath.Join(Root, "config", configName)
fmt.Println("use", configPath)
} else { } else {
Root = filepath.Dir(configPath) Root = filepath.Dir(configPath)
} }

View File

@ -1,7 +1,6 @@
package relation package relation
import ( import (
"gorm.io/gorm"
"time" "time"
pbMsg "OpenIM/pkg/proto/msg" pbMsg "OpenIM/pkg/proto/msg"
@ -27,7 +26,6 @@ type ChatLogModel struct {
SendTime time.Time `gorm:"column:send_time;index:sendTime;index:content_type,priority:1;index:session_type,priority:1;index:recv_id,priority:1;index:send_id,priority:1" json:"sendTime"` SendTime time.Time `gorm:"column:send_time;index:sendTime;index:content_type,priority:1;index:session_type,priority:1;index:recv_id,priority:1;index:send_id,priority:1" json:"sendTime"`
CreateTime time.Time `gorm:"column:create_time" json:"createTime"` CreateTime time.Time `gorm:"column:create_time" json:"createTime"`
Ex string `gorm:"column:ex;type:varchar(1024)" json:"ex"` Ex string `gorm:"column:ex;type:varchar(1024)" json:"ex"`
DB *gorm.DB
} }
func (ChatLogModel) TableName() string { func (ChatLogModel) TableName() string {

View File

@ -19,7 +19,7 @@ msg_transfer_source_root="../cmd/msgtransfer/"
msg_transfer_service_num=4 msg_transfer_service_num=4
sdk_server_name="sdk_ws_server" sdk_server_name="open_im_sdk_server"
sdk_server_binary_root="../bin/" sdk_server_binary_root="../bin/"
sdk_server_source_root="../cmd/Open-IM-SDK-Core/" sdk_server_source_root="../cmd/Open-IM-SDK-Core/"

View File

@ -24,7 +24,7 @@ fi
#Waiting port recycling #Waiting port recycling
sleep 1 sleep 1
cd ${sdk_server_binary_root} cd ${sdk_server_binary_root}
nohup ./${sdk_server_name} -openIM_ws_address ${ws_address} -sdkws_port ${sdkws_ports[0]} -openIM_api_address ${api_address} -openIM_log_level ${logLevel} >>../logs/openIM.log 2>&1 & nohup ./${sdk_server_name} -openIM_ws_address ${ws_address} -sdk_ws_port ${sdkws_ports[0]} -openIM_api_address ${api_address} -openIM_log_level ${logLevel} >>../logs/openIM.log 2>&1 &
#Check launched service process #Check launched service process
sleep 3 sleep 3