From fa72d06d80f7895057adabe9e45f5b20c6c55b34 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 8 Jun 2023 19:30:16 +0800 Subject: [PATCH] del list cache --- pkg/common/db/cache/msg.go | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/pkg/common/db/cache/msg.go b/pkg/common/db/cache/msg.go index e13861b80..be44f36f4 100644 --- a/pkg/common/db/cache/msg.go +++ b/pkg/common/db/cache/msg.go @@ -383,13 +383,23 @@ func (c *msgCache) DelUserDeleteMsgsList(ctx context.Context, conversationID str log.ZWarn(ctx, "DelUserDeleteMsgsList failed", err, "conversationID", conversationID, "seq", seq) continue } - for _, userID := range delUsers { - if err := c.rdb.SRem(ctx, c.getUserDelList(conversationID, userID), seq).Err(); err != nil { - log.ZWarn(ctx, "DelUserDeleteMsgsList failed", err, "conversationID", conversationID, "seq", seq, "userID", userID) + if len(delUsers) > 0 { + pipe := c.rdb.Pipeline() + var failedFlag bool + for _, userID := range delUsers { + err = pipe.SRem(ctx, c.getUserDelList(conversationID, userID), seq).Err() + if err != nil { + failedFlag = true + log.ZWarn(ctx, "DelUserDeleteMsgsList failed", err, "conversationID", conversationID, "seq", seq, "userID", userID) + } } - - if err := c.rdb.Del(ctx, c.getMessageDelUserListKey(conversationID, seq)).Err(); err != nil { - log.ZWarn(ctx, "DelUserDeleteMsgsList failed", err, "conversationID", conversationID, "seq", seq) + if !failedFlag { + if err := pipe.Del(ctx, c.getMessageDelUserListKey(conversationID, seq)).Err(); err != nil { + log.ZWarn(ctx, "DelUserDeleteMsgsList failed", err, "conversationID", conversationID, "seq", seq) + } + } + if _, err := pipe.Exec(ctx); err != nil { + log.ZError(ctx, "pipe exec failed", err, "conversationID", conversationID, "seq", seq) } } }