python-3.x - 如何保证我的异步倒计时功能实时运行?
问题描述
我有一个基于 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 - 更新 tkinter 接口上的当前值
- java - 来自主查询的构造函数中的多个子查询会中断 Hibernate 转换
- laravel - 未定义变量:user.blade.php 中的类别
- reactjs - 反应原生 mapbox 设置唯一值来旋转 SymbolLayer
- c++ - 我在读取文件时遇到问题
- javascript - 如何将 Babel 与 Electron 一起使用?
- java - 如何创建一个使数字向右对齐的java程序?
- python - 如何偏移 x 轴并记录 y 轴并从外部文件中找到我的图形的梯度
- audiokit - v5:CallbackInstrument 是否与其他 PolyphonicNodes 一起被删除?
- flutter - tflite 颤振应用程序仅提供一个输出