Я получаю данные OHLCV из Binance через API Binance на AWS-EC2.
Но иногда (раз в пару дней) возникает ошибка "104, 'ECONNRESET'" и программа останавливается.
Программа, написанная на Python3.7.3 и работающая на AWS-EC2
Код следующий. Но этот код не может продолжаться.
Я хочу продолжить выполнение программы при возникновении любой ошибки API или соединения.
Как мне справиться с этой ошибкой?
while True:
..............
try :
klines = client.get_historical_klines(ticker_symbol, Client.KLINE_INTERVAL_1MINUTE, _from_str, _until_str)
except BinanceAPIException as e:
print(e)
print('Something went wrong. Error occured at %s. Wait for 1 hour.' % (datetime.datetime.now().astimezone(timezone('UTC'))))
sleep(3600)
continue
..............
Все сообщения об ошибках следующие.
Traceback (последний вызов был последним):
файл
"/Home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/urllib3/connectionpool.py",
линия 600, в урлопене
chunked = chunked) Файл "/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/urllib3/connectionpool.py",
строка 384, в _make_request
Файл six.raise_from (e, None) "", строка 2, в файле повышение_файлов
"/Home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/urllib3/connectionpool.py",
строка 380, в _make_request
httplib_response = conn.getresponse () Файл "/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/http/client.py",
строка 1321, в ответе
Файл response.begin () "/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/http/client.py",
строка 296, в начале
версия, статус, причина = файл self._read_status () "/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/http/client.py",
строка 257, в _read_status
line = str (файл self.fp.readline (_MAXLINE + 1), "iso-8859-1") "/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/socket.py ", линия
589, в readinto
вернуть файл self._sock.recv_into (b) "/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/urllib3/contrib/pyopenssl.py",
строка 312, в recv_into
вернуть файл self.recv_into (* args, ** kwargs) "/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/urllib3/contrib/pyopenssl.py",
строка 302, в recv_into
поднять SocketError (str (e)) OSError: (104, 'ECONNRESET')
Во время обработки вышеуказанного исключения произошло другое исключение:
Traceback (последний вызов был последним): File
"/Home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/requests/adapters.py",
строка 449, отправка
timeout = файл тайм-аута "/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/urllib3/connectionpool.py",
строка 638, в урлопене
_stacktrace = sys.exc_info () [2]) Файл "/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/urllib3/util/retry.py",
строка 368, в приращении
поднять файл six.reraise (тип (ошибка), ошибка, _stacktrace) "/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/urllib3/packages/six.py" ,
линия 685, в ререйзе
поднять value.with_traceback (tb) файл "/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/urllib3/connectionpool.py",
линия 600, в урлопене
chunked = chunked) Файл "/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/urllib3/connectionpool.py",
строка 384, в _make_request
Файл six.raise_from (e, None) "", строка 2, в файле повышение_файлов
"/Home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/urllib3/connectionpool.py",
строка 380, в _make_request
httplib_response = conn.getresponse () Файл "/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/http/client.py",
строка 1321, в ответе
Файл response.begin () "/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/http/client.py",
строка 296, в начале
версия, статус, причина = файл self._read_status () "/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/http/client.py",
строка 257, в _read_status
line = str (файл self.fp.readline (_MAXLINE + 1), "iso-8859-1") "/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/socket.py ", линия
589, в readintoвернуть файл self._sock.recv_into (b) «/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/urllib3/contrib/pyopenssl.py», строка 312, вrecv_into возвращает файл self.recv_into (* args, ** kwargs) "/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/urllib3/contrib/pyopenssl.py",строка 302, в recv_into вызывает SocketError (str (e)) urllib3.exceptions.ProtocolError: ('Соединение прервано.', OSError ("(104, 'ECONNRESET')"))
во время обработкииз вышеупомянутого исключения произошло другое исключение:
Traceback (последний последний вызов): файл "BTC_USDT_BINANCE_minutes.py", строка 54, в klines = client.get_historical_klines (ticker_symbol, Client.KLINE_INTERVAL_1MINUTst, _from, _until_str) Файл "/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/binance/client.py", строка 765, в get_historical_klines first_valid_ts = self._get_earliest_valid_timestamp (символ, интервал) Файл "/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/binance / client.py ", строка 723, в _get_earliest_valid_timestamp endTime = Нет файла" /home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/binance/client.py ",строка 705, в get_klines возвращает self._get ('klines', data = params) Файл "/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/binance/client.py ", строка 207, в _get возвращает файл self._request_api ('get', путь, подпись, версия, ** kwargs)" /home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/binance/client.py ", строка 181, в _request_api возвращает файл self._request (метод, uri, подписанный, ** kwargs) Файл" /home/ec2-user/.pyenv/versions/3.7.3/lib / python3.7 / site-packages / binance / client.py ", строка 175, в _request response = getattr (self.session, method) (uri, ** kwargs) Файл" /home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/requests/sessions.py ", строка 546, в файле get return self.request (файл 'GET', url, ** kwargs)" / home / ec2-user / .pyenv / версии / 3.7.3 / lib / python3.7 / site-пакеты / запросы / sessions.py ", строка 533, яn request resp = self.send (prep, ** send_kwargs) Файл "/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/requests/sessions.py", строка646, в файле send r = adapter.send (запрос, ** kwargs) "/home/ec2-user/.pyenv/versions/3.7.3/lib/python3.7/site-packages/requests/adapters.py", строка 498, при отправке поднять ConnectionError (err, request = request) request.exceptions.ConnectionError: ('Соединение прервано.', OSError ("(104, 'ECONNRESET')"))