我有以下代码:
from discord.ext import commands
bot = commands.Bot(command_prefix= prefix)
big_var = {}
@bot.command(name='func1')
@commands.max_concurrency(1, wait = True)
async def func1(ctx):
func1code(big_var)
bot.run(TOKEN)
如果上次使用big_var
是在X分钟前,我想运行一个函数clear_data(big_var)
,以节省内存
我试过:
from discord.ext import commands
bot = commands.Bot(command_prefix= prefix)
big_var = {}
@bot.command(name='func1')
@commands.max_concurrency(1, wait = True)
async def func1(ctx):
func1code(big_var)
await asyncio.sleep(600)
clear_data(big_var)
bot.run(TOKEN)
但是这会阻止函数func1()
完成,max_concurrency
装饰器一次只允许运行一个func1()
实例
我如何解决这个问题
编辑:重写问题使其更清楚
threading.Timer是一个调用第一个参数秒数后的第二个参数的函数。您可能会这样做:
它也不会阻止
以上将产生
相关问题 更多 >
编程相关推荐