Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 19, 2017 06:09:46

Loviad
Зарегистрирован: 2017-12-19
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Бесконечный цикл WHILE c urllib.request/(RaspberryPi)

Сделал простой скрипт, который стартует при запуске PI. Состоит из бесконечного цикла, который отправляет параметры на сервер.

Проблема в том, что спустя часа 2-3 данные перестают поступать, хотя малинка не зависла(к ней без проблем получается подключиться по удаленке), и демон вроде даже как висит в памяти(в процессах видно скрипт).

В чем может быть проблема?

 while True:
    doc = urllib.request.urlopen("адрес", timeout = 10)
    time.sleep(600) 

Отредактировано Loviad (Дек. 19, 2017 06:10:26)

Офлайн

#2 Дек. 19, 2017 08:19:40

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Бесконечный цикл WHILE c urllib.request/(RaspberryPi)

Loviad
Вы хоть как-то пробовали отдебажить вашу программу, хотя бы логами?



Офлайн

#3 Дек. 19, 2017 09:06:55

Loviad
Зарегистрирован: 2017-12-19
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Бесконечный цикл WHILE c urllib.request/(RaspberryPi)

FishHook
LoviadВы хоть как-то пробовали отдебажить вашу программу, хотя бы логами?
Если подскажите как или на предмет чего, буду очень благодарен, ибо я пока не представляю даже что именно искать т.к. тут всего 3 строчки кода, что ответит сервер вообще не важно, скрипт обычным get-ом передает свой ID, и всё.

Офлайн

#4 Дек. 19, 2017 11:14:19

Loviad
Зарегистрирован: 2017-12-19
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Бесконечный цикл WHILE c urllib.request/(RaspberryPi)

Решением стала обработка ошибок:

 import time, requests 
while True: 
        try: 
             requests.get('адрес', timeout=(10)) 
        except requests.exceptions.ReadTimeout: 
             print('Oops. Read timeout occured') 
        except requests.exceptions.ConnectTimeout: 
             print('Oops. Connection timeout occured!') 
        except requests.exceptions.HTTPError as err: 
             print('Oops. HTTP Error occured') 
        except requests.exceptions.ConnectionError: 
             print('Oops. Connection error!') 
        time.sleep(60)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version