2016-10-16 5 views
1

async_timeout을 사용하여 (aiohttp를 사용하여) 사이트에 http 요청을하는 코드가 있습니다. 모든 요청을 함께 실행하면 일부 요청이 TimeoutError를 발생시킵니다 (timeout = 20s 인 경우에도 마찬가지입니다.). 하지만 하나의 요청을 실행하면 작동합니다.aiohttp timeout이 제대로 작동하지 않습니다.

def coro(url):  
    with async_timeout.timeout(TIMEOUT, loop=loop): 
     async with session.get(url) as response: 
      text, status = (await response.text()), response.status 
    ... 

이 async_timeout 문제/버그입니까? 요청이 매우 큰 요청 금액의 경우 20 개 이상의 초 소요 (이 요청이 훨씬 더 빨리 할 때 경우 이상한 아무것도 없다

나는 TCPConnector (aiohttp.TCPConnector(limit=None, verify_ssl=False, loop=loop))를 사용하려고하지만

답변

2

작동하지 않습니다 혼자서 실행).

.get()/.text() 실행 전후에 타임 스탬프 출력물을 삽입하십시오.

Timeout의 코드는 치명적이며 간단하게 테스트되었으며 오류가 있다고 의심되지 않습니다.

+0

감사합니다. 이 스크립트의 성능을 어떻게 향상시킬 수 있습니까? 다중 처리 또는 다중 vps를 사용합니까? – OlegWock

+0

벤치 마크 요청 시간은 0.1-0.3 초입니다. – OlegWock

+0

죄송합니다. 그러나 질문이 너무 광범위합니다. 나는 소스 코드를 보지 않고서는 아무 것도 제안 할 수 없다. –

관련 문제