图片防止重复。每次提取之后就POP掉
This commit is contained in:
@@ -203,19 +203,22 @@ class XiurenImagePlugin(MessagePluginInterface):
|
||||
|
||||
def _get_random_pic(self) -> Optional[str]:
|
||||
"""
|
||||
从 Redis 随机获取图片路径
|
||||
从 Redis 随机获取并移除图片路径(确保不重复使用)
|
||||
"""
|
||||
redis_key = ImageCacheManager.IMAGE_KEY_PREFIX + "all"
|
||||
try:
|
||||
img = DBConnectionManager.get_instance().get_redis_connection().srandmember(redis_key)
|
||||
# 使用 spop 随机弹出并删除一个元素
|
||||
img = DBConnectionManager.get_instance().get_redis_connection().spop(redis_key)
|
||||
|
||||
if img:
|
||||
# redis 返回 bytes,转字符串
|
||||
return img.decode('utf-8') if isinstance(img, bytes) else img
|
||||
else:
|
||||
self.LOG.warning("Redis 中没有图片数据")
|
||||
return None
|
||||
|
||||
self.LOG.warning("Redis 中没有图片数据(可能已全部耗尽)")
|
||||
return None
|
||||
|
||||
except Exception as e:
|
||||
self.LOG.error(f"从 Redis 获取随机图片失败: {e}")
|
||||
self.LOG.error(f"从 Redis 获取并删除随机图片失败: {e}")
|
||||
return None
|
||||
|
||||
# def _get_random_pic(self) -> Optional[str]:
|
||||
|
||||
Reference in New Issue
Block a user