Задать вопрос
Xreymonster
@Xreymonster
аэаэ

Как сделать асинхронный цикл while true?

Пытаюсь реализовать проверку оплаты в боте, загвоздка в том, что при постоянной проверке оплаты используя цикл while true (у меня чуть другой цикл, но сути это не меняет) весь остальной код игнорируется, все юзеры, что пишут боту, остаются проигнорированы до тех пор, пока цикл не остановится. Вот я и решил попробовать сделать его асинхронным, весь инет перерыл, ни один из примеров не помог. Представляю свой код.
time_sleep = 300
while time_sleep > 0:
    if api.check(comment):
        """тут обновляю базу данных с балансом"""
        break
    else:
        sleep(10)
        time_sleep -= 10
  • Вопрос задан
  • 2650 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
sleep(10)
Дай угадаю, from time import sleep?
Если так, то:
1. Почитай, как работают асинхронные программы
2. Осознай свой косяк
3. Замени time.sleep(10) на await asyncio.sleep(10)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@gagarinten
import asyncio

async def inf_loop():
    while True:
        print("Бесконечный цикл")


loop = asyncio.get_event_loop()

asyncio.ensure_future(work())
loop.run_forever()
Ответ написан
@Potterman
In a nut shell...
асинхронная бесконечность... в ней нет никакого смысла
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
07 февр. 2025, в 07:05
100000 руб./за проект
07 февр. 2025, в 03:38
500 руб./за проект
07 февр. 2025, в 02:40
30000 руб./за проект