#python #discord #discord.py
#python #Discord #discord.py
Вопрос:
У меня есть этот фрагмент кода:
from discord.ext import commands
@bot.command()
@commands.max_concurrency(1,per=commands.BucketType.default,wait=False)
async def function(ctx,arg1,arg2,arg3):
max_concurrency()
работает, но при достижении максимального параллелизма я хочу, чтобы он отправил автору сообщение о том, что бот занят, я пробовал MaxConcurrencyReached
обрабатывать исключения, но это просто не работает, кто-нибудь знает, как работать с этой командой?
Ответ №1:
Я понял это.
После определения функции я хочу установить максимальное ограничение параллелизма:
from discord.ext import commands
@bot.command()
@commands.max_concurrency(1,per=commands.BucketType.default,wait=False)
async def function(ctx,arg1,arg2,arg3):
Затем вы должны обработать это с помощью on_command_error()
и isinstance()
. Например:
@bot.event
async def on_command_error(ctx,error):
await ctx.message.delete()
if isinstance(error, commands.MaxConcurrencyReached):
await ctx.author.send('Bot is busy! Please retry in a minute')
return