@DoSs9669

Почему функция на python выдает ошибку спустя 40 минут работы?

Добрый день! Очень прошу помочь разобраться с проблемой.
Написал бота, запускаю все работает без проблем одна и та же функция постоянно повторяется, но спустя 40 минут бот вылетает с такой ошибкой

Fatal Python error: Cannot recover from stack overflow.
Python runtime state: initialized
Current thread 0x00007f81917be700 (most recent call first):
python ine 40 in Orders

Orders - это и есть функция которая при запуске работает без проблем

Сам код функции
def Orders(Operation):
    try:
        url = ''.join((serv, orders)) 
        getOrders = requests.get(url=url, headers= headers)
        MyOrders = dict.copy((getOrders.json()))
        if MyOrders['payload'] == [] and Operation == 'Sell' or MyOrders['payload'] == [] and Operation == 'None': 
            time.sleep(1)
            provPortf() 
        elif MyOrders['payload'] == [] and Operation == 'Buy':
            time.sleep(1)
            MarketBuy()
        else:
            time.sleep(2)
            Orders(Operation)
    except Exception as e:
        err = 'err'
        time.sleep(2)
        Orders(Operation)


И вот я бы понял если бы что то менялось, и какая то другая функция срабатывала, но получается так, что в течении 40 минут функция orders вызывает сама себя и работает в бесконечном цикле, и нет никаких проблем, но спустя какое то время получаю ошибку очень прошу помочь разобраться
  • Вопрос задан
  • 839 просмотров
Решения вопроса 1
@dooMoob
Ну а что тут разбираться, у вас стек переполняется при увеличения числа вложенных вызовов. Память как бы не бесконечная. Вам скорее всего надо это на бесконечный цикл переписать
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
petermzg
@petermzg
Самый лучший программист
Так в except рекурсивно вызываете. А через 40 минут наверное начинает запрос выдавать ошибку, возможно из-за протухания токена.
Ответ написан
Ваш ответ на вопрос

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

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