@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
  • Вопрос задан
  • 152 просмотра
Решения вопроса 1
Нажмите CTRL+C и посмотрите трейсбэк. Увидите, что именно выполнялось в этот момент.

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

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

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