This commit is contained in:
wh_zcy 2023-03-08 18:10:27 +08:00
commit 8b228a7cd0
2 changed files with 24 additions and 35 deletions

View File

@ -56,7 +56,6 @@ type Agent struct {
closeSignal chan bool closeSignal chan bool
state int32 //状态 0 关闭 1 运行 2 关闭中 state int32 //状态 0 关闭 1 运行 2 关闭中
wg sync.WaitGroup wg sync.WaitGroup
hlock sync.RWMutex
protoMsg map[string]int64 protoMsg map[string]int64
} }
@ -96,15 +95,13 @@ locp:
var code pb.ErrorCode var code pb.ErrorCode
code, err = this.secAuth(msg) code, err = this.secAuth(msg)
if err == nil { if err == nil {
this.gateway.Debugf("----------2 agent:%s uId:%s MainType:%s SubType:%s ", this.sessionId, this.uId, msg.MainType, msg.SubType) // this.gateway.Debugf("----------2 agent:%s uId:%s MainType:%s SubType:%s ", this.sessionId, this.uId, msg.MainType, msg.SubType)
if this.uId != "" {
key := this.uId + msg.MainType + msg.SubType // 加锁 key := msg.MainType + msg.SubType // 加锁
if v, ok := this.protoMsg[key]; ok { if v, ok := this.protoMsg[key]; ok {
if v != 0 && configure.Now().Unix()-v < 2 { if v != 0 && configure.Now().Unix()-v < 2 {
// 返回错误码 // 返回错误码
this.hlock.Lock()
this.protoMsg[key] = configure.Now().Unix() this.protoMsg[key] = configure.Now().Unix()
this.hlock.Unlock()
data, _ := anypb.New(&pb.NotifyErrorNotifyPush{ data, _ := anypb.New(&pb.NotifyErrorNotifyPush{
ReqMainType: msg.MainType, ReqMainType: msg.MainType,
ReqSubType: msg.SubType, ReqSubType: msg.SubType,
@ -118,11 +115,8 @@ locp:
continue continue
} }
} }
this.hlock.Lock()
this.protoMsg[key] = configure.Now().Unix() this.protoMsg[key] = configure.Now().Unix()
this.hlock.Unlock()
}
if err := this.messageDistribution(msg); err != nil { if err := this.messageDistribution(msg); err != nil {
this.gateway.Errorf("messageDistribution err:%v", err) this.gateway.Errorf("messageDistribution err:%v", err)
go this.Close() go this.Close()
@ -372,15 +366,10 @@ func (this *Agent) messageDistribution(msg *pb.UserMessage) (err error) {
log.Field{Key: "req", Value: fmt.Sprintf("%s:%s %v", req.MainType, req.SubType, req.Message.String())}, log.Field{Key: "req", Value: fmt.Sprintf("%s:%s %v", req.MainType, req.SubType, req.Message.String())},
log.Field{Key: "reply", Value: reply.String()}, log.Field{Key: "reply", Value: reply.String()},
) )
key := msg.MainType + msg.SubType
if this.uId != "" {
key := this.uId + msg.MainType + msg.SubType
this.hlock.Lock()
if v, ok := this.protoMsg[key]; ok && v != 0 { // 发送消息 协议解锁 if v, ok := this.protoMsg[key]; ok && v != 0 { // 发送消息 协议解锁
v = 0 v = 0
} }
this.hlock.Unlock()
}
if reply.Code != pb.ErrorCode_Success { if reply.Code != pb.ErrorCode_Success {
data, _ := anypb.New(&pb.NotifyErrorNotifyPush{ data, _ := anypb.New(&pb.NotifyErrorNotifyPush{
ReqMainType: msg.MainType, ReqMainType: msg.MainType,

View File

@ -154,7 +154,7 @@ func (this *Mail) SendMailByCid(session comm.IUserSession, cid string, res []*pb
// 获取额外配置 // 获取额外配置
conf := this.configure.GetMailConf(cid) conf := this.configure.GetMailConf(cid)
if conf != nil { if conf == nil {
this.Errorf("can't found mail by cid: %s", cid) this.Errorf("can't found mail by cid: %s", cid)
return false return false
} }