Wpis z mikrobloga

Mam skrypt napisany w python i uruchamiam go przez PyCharma. Działa on cały czas w pętli nieskończonej, w której mam zapytania do api wykopu i korzystam z funkcji "sleep". Prawie wszystko śmiga bez zarzutu, ale czasami się zdarza, że program nie wykonuje dalszych instrukcji mimo, że jest włączony, przy czym "except" mimo, że ustawiony na wyłapywanie wszystkich wyjątków żadnego nie zgłasza. Może to przypadek, ale zdarzało mi się to gdy nie było mnie przez dłuższą chwilę przy komputerze. Dodam, że ustawiłem by komputer nigdy nie przechodził w stan uśpienia. Co może być problem?

#python #programowanie
  • 13
  • Odpowiedz
Może to przypadek, ale zdarzało mi się to gdy nie było mnie przez dłuższą chwilę przy komputerze. Dodam, że ustawiłem by komputer nigdy nie przechodził w stan uśpienia


@maestrozo: to raczej nie przypadek i pewnie cos go wstrzymuje. Dodaj loggera, bedzie ci łatwiej zdiagnozowac kiedy i w ktorym momencie sie zatrzymuje
  • Odpowiedz
@maestrozo: Kto wie co tam masz napisane ale nie jest po prostu tak że jakaś funkcja failuje bez exceptiona a ty tego nie handlujesz albo coś wisi w nieskończoność bo np. program polluje na zakończenie akcji bez timeoutu?
  • Odpowiedz
@bez_plomienia: Run i wydaję mi się, że problem pojawia się przy próbie zrealizowania żądania HTTP do api wykopu. Czasami jest jakiś problem z zrealizowaniem żądania i tak jak piszesz program poluje na zakończenie akcji, ale nie ma timeoutu
  • Odpowiedz
@maestrozo: Miałem taki sam problem X razy. Daj na początek 30 sekund timeout i obserwuj na ile to jest uciążliwe.

Jak dasz za krótki (np. 3 sekundy) to jak tylko internet zwolni dostaniesz serię wyjątków. Lepiej poczekać dłużej i ponowić request jak poprzedni się nie udał z powodów "sieciowych".
  • Odpowiedz
@Ilythiiri: hmm no ale nie wiem. Usunąłem timeouty, wyłączyłem internet i uruchomiłem program i przechwyciło mi exception:

HTTPSConnectionPool(host='a2.wykop.pl', port=443): Max retries exceeded with url: /Entries/Upvoters/tajne/appkey/tajne/ (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))
  • Odpowiedz