Как сделать асинхронный цикл?
Всем привет! Возможно я плохо ищу, потому что я не нашел конкретно того, что мне нужно. Буду благодарен, если кто-то скинет документацию. Я хотел сделать асинхронный цикл, который будет вечно спустя 10 секунд проверять наличие меньше 99 монет на балансе пользователя, но как сказал ранее - не знаю как. Вот кусочек кода, который нужно обернуть.
await asyncio.sleep(10)
if balance < 99:
await ctx.author.remove_roles(rolecreate)
await ctx.send(embed = timesup)
else:
cursor.execute("UPDATE users SET cash = cash - 99 WHERE id = {}".format(ctx.author.id))
Ответы (1 шт):
Автор решения: eri
→ Ссылка
обернули
def balancetask(ctx,cursor):
while True:
await asyncio.sleep(10)
if balance < 99:
await ctx.author.remove_roles(rolecreate)
await ctx.send(embed = timesup)
else:
cursor.execute("UPDATE users SET cash = cash - 99 WHERE id = {}".format(ctx.author.id))
и запускаем
asyncio.get_running_loop().create_task(balancetask(ctx,cursor))
но курсор лучше получать новый на каждой итерации.