mirror of
https://github.com/openimsdk/open-im-server.git
synced 2025-04-28 04:48:44 +08:00
del
This commit is contained in:
parent
89a1bf4742
commit
03d910028b
@ -465,20 +465,23 @@ func (db *commonMsgDatabase) GetMsgBySeqsRange(ctx context.Context, userID strin
|
|||||||
maxSeq = userMaxSeq
|
maxSeq = userMaxSeq
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
newBegin := begin
|
||||||
|
newEnd := end
|
||||||
if begin < minSeq {
|
if begin < minSeq {
|
||||||
begin = minSeq
|
newBegin = minSeq
|
||||||
}
|
}
|
||||||
if end > maxSeq {
|
if end > maxSeq {
|
||||||
end = maxSeq
|
newEnd = maxSeq
|
||||||
}
|
}
|
||||||
var seqs []int64
|
var seqs []int64
|
||||||
for i := end; i > end-num; i-- {
|
for i := newEnd; i > newEnd-num; i-- {
|
||||||
if i >= begin {
|
if i >= newBegin {
|
||||||
seqs = append([]int64{i}, seqs...)
|
seqs = append([]int64{i}, seqs...)
|
||||||
} else {
|
} else {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
log.ZDebug(ctx, "GetMsgBySeqsRange", "first seqs", seqs)
|
||||||
cachedMsgs, failedSeqs, err := db.cache.GetMessagesBySeq(ctx, conversationID, seqs)
|
cachedMsgs, failedSeqs, err := db.cache.GetMessagesBySeq(ctx, conversationID, seqs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if err != redis.Nil {
|
if err != redis.Nil {
|
||||||
@ -500,10 +503,19 @@ func (db *commonMsgDatabase) GetMsgBySeqsRange(ctx context.Context, userID strin
|
|||||||
successMsgs = append(successMsgs, msg)
|
successMsgs = append(successMsgs, msg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
for i := 0; i < len(delSeqs); i++ {
|
||||||
|
newSeq := newBegin - 1
|
||||||
|
if newSeq >= begin {
|
||||||
|
log.ZDebug(ctx, "seq del in cache, a new seq in range append", "new seq", newSeq)
|
||||||
|
failedSeqs = append(failedSeqs, newSeq)
|
||||||
|
} else {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
log.ZDebug(ctx, "get msgs from cache", "successMsgs", successMsgs)
|
log.ZDebug(ctx, "get msgs from cache", "successMsgs", successMsgs)
|
||||||
if len(failedSeqs) != 0 {
|
if len(failedSeqs) != 0 {
|
||||||
log.ZDebug(ctx, "msgs not exist in redis", err, "seqs", seqs)
|
log.ZDebug(ctx, "msgs not exist in redis", err, "seqs", failedSeqs)
|
||||||
}
|
}
|
||||||
// get from cache or db
|
// get from cache or db
|
||||||
prome.Add(prome.MsgPullFromRedisSuccessCounter, len(successMsgs))
|
prome.Add(prome.MsgPullFromRedisSuccessCounter, len(successMsgs))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user