Python调用mee6_py_api获取Discord用户XP时数据不刷新问题
问题原因
mee6_py_api 库默认开启了全局请求缓存,相同用户ID的XP查询请求首次完成后,后续请求会直接返回内存中缓存的历史数据,不会向Mee6官方接口发起新请求拉取最新数值,因此会出现XP不更新的问题。
解决方案
方案1:初始化时全局禁用缓存
实例化API对象时传入cache_enabled=False参数,关闭全局缓存,每次查询都会发起新请求拉取最新数据:
# 替换原有mee6API实例化代码 mee6API = API(670824141225590815, cache_enabled=False)
该改法改动量最小,适合大多数普通使用场景。
方案2:保留缓存,单次查询强制刷新
如果不想完全关闭缓存降低请求效率、避免触发接口限流,可以在调用get_user_xp时传入use_cache=False参数,强制本次请求跳过缓存拉取最新数据:
@client.command() async def xp(ctx): xp = await mee6API.levels.get_user_xp(ctx.message.author.id, use_cache=False) await ctx.send("Your xp is {}.".format(xp))
该方式可以兼顾缓存性能和数据时效性,适合请求量较大的机器人使用。
内容的提问来源于stack exchange,提问作者Raymond Huang
相关产品推荐
相关产品推荐

