WLM1ke / poptimizer

Оптимизация долгосрочного портфеля акций
The Unlicense
152 stars 28 forks source link

Ошибка ('Connection aborted.', ConnectionResetError(10054, 'Удаленный хост принудительно разорвал существующее подключение', None, 10054, None)) #128

Open luckybearprogrammer opened 4 months ago

luckybearprogrammer commented 4 months ago

Спустя примерно 3 часа работы скрипта получается ошибка ('Connection aborted.', ConnectionResetError(10054, 'Удаленный хост принудительно разорвал существующее подключение', None, 10054, None)) при этом у меня скорость отправки запроса на api ISS (https://iss.moex.com/iss и далее что надо ) moex 1 запрос за 30 секунд, кто нибудь сталкивался с этой проблемой? Я добавил headers по типу headers = { 'user-agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:87.0) Gecko/20100101 Firefox/87.0'} и таймаут минуту в случае ошибки кто нибудь сталкивался ли с такой проблемой и как ее смогли решить?

PiotTDev commented 4 months ago

С 15.03.2024 появился этот эксэпшн, с 03.03 просмотрел логи, не было. И случается только когда часто пытаешься получить кук в новом экземпляре чтобы потом засунуть его в session. resp = self.session.get(url=iss_meta.url_auth, auth=self.auth) - вот здесь когда часто долбишься таким запросом серверу это не нравится что его ДДОСят. У меня он первый, и эксепшн не влияет на результат, т.к. получив следующий гет я смотрю пришел нужный кук, если пришел я его в сешн пихаю и так далее, ну по классике. В принципе извлекать кук, совать его в сешн и потом отслеживать лайфтайм это в хорошем стиле по мануалу, ISS не требует этого для обычных юзеров. А вот у тех, у кого соглашение на реалтайм, стоимостью 45 косарей в месяц это актуально, т.к. некоторым запросам особый доступ с правильным куком нужен. Я на продажу делал движок, поэтому реквест сделал по мануалу. Можно увеличить время, поможет. В общем безкуковые запросы бесят сервер, т.к. ты, он думает вражина :), хочешь сорвать трэйдинг сешн. Может после выборов вернут назад. Я сначала думал из-за обновления, 2 сервака есть с разными обновлениями, результат один и тот же. Да и эту хрень ты не отловишь, ты в дебаге когда сидишь время идет и все будет отлично :). Ну удачи, дружище. ИМХО.

luckybearprogrammer commented 4 months ago

С 15.03.2024 появился этот эксэпшн, с 03.03 просмотрел логи, не было. И случается только когда часто пытаешься получить кук в новом экземпляре чтобы потом засунуть его в session. resp = self.session.get(url=iss_meta.url_auth, auth=self.auth) - вот здесь когда часто долбишься таким запросом серверу это не нравится что его ДДОСят. У меня он первый, и эксепшн не влияет на результат, т.к. получив следующий гет я смотрю пришел нужный кук, если пришел я его в сешн пихаю и так далее, ну по классике. В принципе извлекать кук, совать его в сешн и потом отслеживать лайфтайм это в хорошем стиле по мануалу, ISS не требует этого для обычных юзеров. А вот у тех, у кого соглашение на реалтайм, стоимостью 45 косарей в месяц это актуально, т.к. некоторым запросам особый доступ с правильным куком нужен. Я на продажу делал движок, поэтому реквест сделал по мануалу. Можно увеличить время, поможет. В общем безкуковые запросы бесят сервер, т.к. ты, он думает вражина :), хочешь сорвать трэйдинг сешн. Может после выборов вернут назад. Я сначала думал из-за обновления, 2 сервака есть с разными обновлениями, результат один и тот же. Да и эту хрень ты не отловишь, ты в дебаге когда сидишь время идет и все будет отлично :). Ну удачи, дружище. ИМХО.

а можешь показать как ты это делаешь? или делал.. пожалуйста типо я просто сделал try except я получаю запрос вот так типо try: response = requests.get(api_url) действия всякие except requests.exceptions.ConnectionError: time.sleep(60)

вроде нормис, но что то сегодня к вечеру мне она стала прилетать раз в 10 минут ( хотя в течения дня раз в 3-5 часов )

еще словил TimeoutError connection под конец дня