调整图片下载逻辑,定时任务5分钟一次进行图片消息下载存档。

This commit is contained in:
liuwei
2025-12-30 09:13:43 +08:00
parent f2ec3facf1
commit 1f50ea2df1

View File

@@ -122,11 +122,11 @@ class MessageStorage:
logger.debug(f"图片消息已记录,等待定时任务处理: msg_id={msg.msg_id}, roomid={msg.roomid}")
return True
def _process_image_from_db(self, db_record: Dict) -> Dict:
"""从数据库记录处理图片(用于定时任务)
async def _process_image_from_db(self, db_record: Dict) -> Dict:
"""从数据库记录处理图片(用于定时任务,异步版本
Args:
db_record: 数据库记录,包含 message_id, group_id, message_xml 等
db_record: 数据库记录,包含 message_id, group_id, attachment_url 等
Returns:
处理结果字典
@@ -157,13 +157,11 @@ class MessageStorage:
aeskey = aeskey_match.group(1)
cdnthumburl = cdn_match.group(1)
# ===== 2. 下载图片(复用事件循环=====
# ===== 2. 下载图片(异步方式,直接 await=====
try:
base64_str = self._image_loop.run_until_complete(
self.client.download_image(
aeskey=aeskey,
cdnmidimgurl=cdnthumburl
)
base64_str = await self.client.download_image(
aeskey=aeskey,
cdnmidimgurl=cdnthumburl
)
except Exception as e:
logger.error(f"图片下载失败 message_id={message_id}: {e}")
@@ -264,7 +262,7 @@ class MessageStorage:
# 串行处理,避免并发更新数据库导致锁竞争
for msg_record in pending_messages:
result = self._process_image_from_db(msg_record)
result = await self._process_image_from_db(msg_record)
if result.get('success'):
success_count += 1
else: