update clearMsg logic.

pull/2466/head
Monet Lee 1 year ago
parent 0f42b330ed
commit 031c0f1eb2

@ -2,7 +2,6 @@ package msg
import ( import (
"context" "context"
"strings"
"time" "time"
"github.com/openimsdk/open-im-server/v3/pkg/authverify" "github.com/openimsdk/open-im-server/v3/pkg/authverify"
@ -32,8 +31,6 @@ func (m *msgServer) ClearMsg(ctx context.Context, req *msg.ClearMsgReq) (_ *msg.
start = time.Now() start = time.Now()
) )
clearMsg := func(ctx context.Context) (bool, error) { clearMsg := func(ctx context.Context) (bool, error) {
conversationSeqs := make(map[string]struct{})
msgs, err := m.MsgDatabase.GetBeforeMsg(ctx, req.Timestamp, 100) msgs, err := m.MsgDatabase.GetBeforeMsg(ctx, req.Timestamp, 100)
if err != nil { if err != nil {
return false, err return false, err
@ -41,6 +38,7 @@ func (m *msgServer) ClearMsg(ctx context.Context, req *msg.ClearMsgReq) (_ *msg.
if len(msgs) == 0 { if len(msgs) == 0 {
return false, nil return false, nil
} }
for _, msg := range msgs { for _, msg := range msgs {
index, err := m.MsgDatabase.DeleteDocMsgBefore(ctx, req.Timestamp, msg) index, err := m.MsgDatabase.DeleteDocMsgBefore(ctx, req.Timestamp, msg)
if err != nil { if err != nil {
@ -49,13 +47,11 @@ func (m *msgServer) ClearMsg(ctx context.Context, req *msg.ClearMsgReq) (_ *msg.
if len(index) == 0 { if len(index) == 0 {
return false, errs.ErrInternalServer.WrapMsg("delete doc msg failed") return false, errs.ErrInternalServer.WrapMsg("delete doc msg failed")
} }
docNum++ docNum++
msgNum += len(index) msgNum += len(index)
conversationID := msg.DocID[:strings.LastIndex(msg.DocID, ":")]
if _, ok := conversationSeqs[conversationID]; !ok {
conversationSeqs[conversationID] = struct{}{}
}
} }
return true, nil return true, nil
} }
@ -69,6 +65,7 @@ func (m *msgServer) ClearMsg(ctx context.Context, req *msg.ClearMsgReq) (_ *msg.
log.ZInfo(ctx, "clear msg success", "docNum", docNum, "msgNum", msgNum, "cost", time.Since(start)) log.ZInfo(ctx, "clear msg success", "docNum", docNum, "msgNum", msgNum, "cost", time.Since(start))
break break
} }
log.ZInfo(ctx, "clearing message", "docNum", docNum, "msgNum", msgNum, "cost", time.Since(start)) log.ZInfo(ctx, "clearing message", "docNum", docNum, "msgNum", msgNum, "cost", time.Since(start))
} }
return &msg.ClearMsgResp{}, nil return &msg.ClearMsgResp{}, nil

Loading…
Cancel
Save