LINUX.ORG.RU

Непонятные зависания на питоне

 ,


0

1

У меня есть простенькая программа, которая примерно раз в минуту должна отсылать запрос на мой сервер:

s = requests.session()
s.mount('http://', HTTPAdapter(max_retries=5))
s.mount('https://', HTTPAdapter(max_retries=5))

while True:
    s.get('мой сайт', timeout=30)
    print('Запрос отправлен')
    time.sleep(60)
Но часов через 8-14 новые сообщения «Запрос отправлен» перестают появляться, и на сервер ничего не приходит. Если остановить программу ctrl + c будет
^CTraceback (most recent call last):
  File "./main.py", line 14, in <module>  
    time.sleep(60)
KeyboardInterrupt
В чём может быть причина?


Включи дебаг для начала и посмотри, что будет в логе.

И чего именно ты пытаешься добиться, переиспользуя объект «сессии»? Проблема наверняка здесь.

WitcherGeralt ★★
()

варианты: 1) что-то кушает память, комп с программой виснет или oomk убивает необходимый процесс 2) у твоего сервера динамический IP, который, вероятно, кешируется модулем requests 3) какой-то другой процесс занимает ресурсы

попробуй то же на баше:

$ while true; do curl --verbose --retry 5 --max-time 30 'https://mysite.ru/myrequest?myparams'; echo -en '\n*** A request has been sent. '; date; free -m; sleep 60; done &> ~/requests_log.txt

anonymous
()

Как вариант, если спустя timeout запрос не был удачным, то пересоздавать обьект сессии и по новой.

crarkie
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.