fix(wecom): guard dedup map cleanup under mutex

This commit is contained in:
Jared Mahotiere 2026-02-23 13:21:39 -05:00
parent efb68501b9
commit a37b3ba3ff

View file

@ -339,14 +339,15 @@ func (c *WeComBotChannel) processMessage(ctx context.Context, msg WeComBotMessag
return
}
c.processedMsgs[msgID] = true
c.msgMu.Unlock()
// Clean up old messages periodically (keep last 1000)
// Clean up old messages periodically (keep last 1000).
// Keep the current message id in the new map to preserve dedup behavior.
if len(c.processedMsgs) > 1000 {
c.msgMu.Lock()
c.processedMsgs = make(map[string]bool)
c.msgMu.Unlock()
c.processedMsgs = map[string]bool{
msgID: true,
}
}
c.msgMu.Unlock()
senderID := msg.From.UserID