我有一个不和谐的机器人,它需要每隔一段时间向聊天室发送一条消息,它做得很好,但现在我无法阻止它。我该怎么做?
编码:
@bot.command()
async def task(ctx, arg):
t = False
i = 0
if arg == 'on':
t = True
elif arg == 'off':
t = False
else:
await ctx.send('Error!')
while t == True:
i += 1
await ctx.send(i)
await asyncio.sleep(10)
我尝试bot.loop.create_task(task(ctx, arg))按照其中一个示例所示进行创建,但我的函数需要ctx并且arg仅在命令内部。
尝试这样的事情。
在 await 操作中调用 .cancel() 会抛出 CancelledError 异常并且循环会崩溃。
在取消后进行异常处理也是可取的:
但即使没有这个,异常也不会破坏主循环。