处理重复消息问题,偶尔在等待时候会出现重复消息。

This commit is contained in:
liuwei
2025-06-25 13:45:24 +08:00
parent 79324adb9a
commit e2d0e57bbe

View File

@@ -3,6 +3,7 @@ import asyncio
import threading
import time
import tomllib
from collections import deque
import toml
from loguru import logger
@@ -99,6 +100,7 @@ class Robot:
sender_email=self.config.email.get("sender_email", "bovine_liu@163.com"),
sender_password=self.config.email.get("sender_password", "LTS9BhmX9XhS36QS")
)
self.recent_msg_ids = deque(maxlen=20)
def init_wechat_ipad(self):
"""初始化wechat_ipad客户端"""
@@ -244,6 +246,12 @@ class Robot:
# 处理消息
try:
wxmsg: WxMessage = WxMessage.from_json(message)
# 判断是否已经收到过。处理。存储最近20个msg_id处理之前判断是否在清单里面如果在这不重新处理了。
msg_id = wxmsg.msg_id
if msg_id in self.recent_msg_ids:
self.LOG.info(f"出现重复ID消息:{msg_id}")
continue # 已处理,跳过
self.recent_msg_ids.append(msg_id)
except Exception as e:
self.LOG.error(f"WxMessage.from_json 解析失败,消息内容: {message},错误: {e}")
continue # 跳过本条消息,继续处理下一条