우리는 탄성 검색에 데이터를 게시하기 위해 Python 3.5와 함께 aiohttp를 사용합니다. 포스트 라인은 다음과 같다 :aiohttp - 소켓 전송시 치명적인 읽기 오류 - TimeoutError
response = await self._http_session.request(method, url,
data = data_fun(), params = params)
보통 모든 것이 잘 실행하지만 때때로 다음과 같은 오류가 발생 : 그냥 예외를 제기하고 계속한다면
가Fatal read error on socket transport
protocol: <aiohttp.parsers.StreamProtocol object at 0x7fde5eb7eeb8>
transport: <_SelectorSocketTransport fd=21 read=polling write=<polling, bufsize=261832>>
Traceback (most recent call last):
File "/usr/lib/python3.5/asyncio/selector_events.py", line 664, in _read_ready
data = self._sock.recv(self.max_size)
TimeoutError: [Errno 110] Connection timed out
그것은, 괜찮을 것 정상적으로 기능합니다. 우리의 경우에는이 오류로 인해 게시 요청이 실행되는 전체 asyncio 작업이 중단됩니다.
오류 발생을 https://github.com/python/asyncio/blob/master/asyncio/selector_events.py#L674으로 추적하여 이후에 call_exception_handler
을 호출했습니다.
이 예외로 인해 _https_session
이 잘못되었거나 사용할 수 없게 될 가능성이 있으며 새 항목을 만들어야합니까? 아니면 우리가 할 수있는 일이 있습니까?
네처럼, 그 변경됩니다. 전체 코드는 https://repl.it/CjAB에서 확인할 수 있습니다. 그리고 오류는 실제로 잘해야합니다 우리의 except 절에 의해 잡힌 것입니다 .. – Jendas
BTW 당신은 aioes 존재에 대해 알고 계십니까? –