Задать вопрос
@f1awe

While True через какое-то время перестаёт работать?

У меня есть кусок кода, который постоянно проверяет, пришло ли время что-либо делать (эти действия должно повторяться каждые 15 минут и каждые 8 часов)
Я использую конструкцию while True и в ней у меня:
while True:
        if profit_time <= datetime.datetime.now():
        collect_profit()
        profit_time = profit_time + datetime.timedelta(hours=8)
        info_log(f'| Деньги будут собраны в {profit_time}')
    elif underwork_time <= datetime.datetime.now():
        underwork()
        pets_battle()
        underwork_time = datetime.datetime.now() + datetime.timedelta(minutes=15)
        info_log(f'| Следующие действия будут выполнены {underwork_time}')
    else:
        time.sleep(2)


Также, в начале программы у меня есть переменные:
underwork_time = datetime.datetime.strptime(start_date, "%Y-%m-%d %H:%M:%S") + datetime.timedelta(minutes=15)
profit_time = str(datetime.datetime.now().strftime('%Y-%m-%d')) + str(datetime.datetime.now().strftime(' %H:%M:59'))
profit_time = datetime.datetime.strptime(profit_time, "%Y-%m-%d %H:%M:%S")


На pythonanywhere спустя 3-5 итераций программа просто замолкает. Что делать?
6146f62de6177618812354.png
  • Вопрос задан
  • 169 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Skillbox
    Python-разработчик
    10 месяцев
    Далее
  • ProductStar
    Профессия: Python-разработчик
    8 месяцев
    Далее
Решения вопроса 1
Нажмите CTRL+C и посмотрите трейсбэк. Увидите, что именно выполнялось в этот момент.

И нет ли у вас там HTTP-обращений ко внешним серверам, например через requests? Так когда не прописаны таймауты, эти обращения могут зависнуть на этапе установки соединения, не вызывая ошибку.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы