在发出带有loop.create_task()
或await
的任务时,似乎存在很大的时差。
在下面的示例discord bot中,在任何文本通道中键入"!q"
几乎立即停止bot,在python控制台中键入"q"
最多需要2分钟。我希望发出的任务以相同的速度执行,就像发出等待一样。我想知道,为什么会有这么大的时差。是否缺少优先级系统,或者是否有其他方法从线程发出异步任务
示例代码:
import discord, threading
class BotClient(discord.Client):
async def halt(self):
await self.close()
print("[Discord Client stopped]")
async def on_message(self, message):
if message.content == "!q":
await self.halt()
class InteractiveThread(threading.Thread):
def __init__(self, client):
super().__init__()
self.client = client
def run(self):
cmd = input()
if(cmd=="q"):
self.client.loop.create_task(self.client.halt())
client = BotClient()
IAT = InteractiveThread(client)
IAT.start()
client.run(SECRET_DISCORD_TOKEN)
IAT.join()
(秘密不和谐令牌必须替换为您的令牌)
目前没有回答
相关问题 更多 >
编程相关推荐