Как использовать max_concurrency() в Discord.py бот

#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