Xreymonster
@Xreymonster
аэаэ

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

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

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


loop = asyncio.get_event_loop()

asyncio.ensure_future(work())
loop.run_forever()
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы