mirror of
https://github.com/openimsdk/open-im-server.git
synced 2025-12-19 04:37:01 +08:00
fix bug: cron del mongo msg
This commit is contained in:
parent
84d7591738
commit
548caf6256
@ -731,34 +731,21 @@ func (db *commonMsgDatabase) deleteMsgRecursion(ctx context.Context, conversatio
|
|||||||
delStruct.delDocIDs = append(delStruct.delDocIDs, msgDocModel.DocID)
|
delStruct.delDocIDs = append(delStruct.delDocIDs, msgDocModel.DocID)
|
||||||
delStruct.minSeq = msgDocModel.Msg[len(msgDocModel.Msg)-1].Msg.Seq
|
delStruct.minSeq = msgDocModel.Msg[len(msgDocModel.Msg)-1].Msg.Seq
|
||||||
} else {
|
} else {
|
||||||
var hasMarkDelFlag bool
|
|
||||||
var delMsgIndexs []int
|
var delMsgIndexs []int
|
||||||
for i, MsgInfoModel := range msgDocModel.Msg {
|
for i, MsgInfoModel := range msgDocModel.Msg {
|
||||||
if MsgInfoModel != nil && MsgInfoModel.Msg != nil {
|
if MsgInfoModel != nil && MsgInfoModel.Msg != nil {
|
||||||
if utils.GetCurrentTimestampByMill() > MsgInfoModel.Msg.SendTime+(remainTime*1000) {
|
if utils.GetCurrentTimestampByMill() > MsgInfoModel.Msg.SendTime+(remainTime*1000) {
|
||||||
delMsgIndexs = append(delMsgIndexs, i)
|
delMsgIndexs = append(delMsgIndexs, i)
|
||||||
hasMarkDelFlag = true
|
|
||||||
} else {
|
|
||||||
// 到本条消息不需要删除, minSeq置为这条消息的seq
|
|
||||||
if len(delStruct.delDocIDs) > 0 {
|
|
||||||
log.ZDebug(ctx, "delete docs", "delDocIDs", delStruct.delDocIDs)
|
|
||||||
}
|
|
||||||
if err := db.msgDocDatabase.DeleteDocs(ctx, delStruct.delDocIDs); err != nil {
|
|
||||||
return 0, err
|
|
||||||
}
|
|
||||||
if hasMarkDelFlag {
|
|
||||||
log.ZDebug(ctx, "delete msg by index", "delMsgIndexs", delMsgIndexs, "docID", msgDocModel.DocID)
|
|
||||||
// mark del all delMsgIndexs
|
|
||||||
if err := db.msgDocDatabase.DeleteMsgsInOneDocByIndex(ctx, msgDocModel.DocID, delMsgIndexs); err != nil {
|
|
||||||
return delStruct.getSetMinSeq(), err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return MsgInfoModel.Msg.Seq, nil
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if len(delMsgIndexs) > 0 {
|
||||||
|
if err := db.msgDocDatabase.DeleteMsgsInOneDocByIndex(ctx, msgDocModel.DocID, delMsgIndexs); err != nil {
|
||||||
|
log.ZError(ctx, "deleteMsgRecursion DeleteMsgsInOneDocByIndex failed", err, "conversationID", conversationID, "index", index)
|
||||||
|
}
|
||||||
|
delStruct.minSeq = int64(msgDocModel.Msg[delMsgIndexs[len(delMsgIndexs)-1]].Msg.Seq)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// 继续递归 index+1
|
|
||||||
seq, err := db.deleteMsgRecursion(ctx, conversationID, index+1, delStruct, remainTime)
|
seq, err := db.deleteMsgRecursion(ctx, conversationID, index+1, delStruct, remainTime)
|
||||||
return seq, err
|
return seq, err
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user