首页 > 解决方案 > 如何保证我的异步倒计时功能实时运行?

问题描述

我有一个基于 discord.py 库的不和谐机器人,它的命令之一是倒计时。这样做的目的只是为了让人们同时开始播放一张专辑,所以它只是从 10 开始倒计时:

@bot.command(name='countdown')
async def count(ctx):
    msg = await ctx.send('10')
    await asyncio.sleep(1)
    for num in range(9, 0, -1):
        try:
            await msg.edit(content=num)
        except:
            return
        await asyncio.sleep(1)
    await msg.edit(content="Go!")

该命令在一台服务器上运行良好,但由于我最终希望将此机器人发布到其他服务器,因此我注意到一个奇怪的问题,如果它一次被调用两次。机器人基本上会冻结,数字将开始非常缓慢地倒计时,有时需要 3 或 4 秒才能到达下一个数字。

如何确保此特定命令实时倒计时?我可以启动多个线程吗?

标签: python-3.xdiscorddiscord.pypython-asyncio

解决方案


推荐阅读