Skip to content

Async-timeout

asyncio 사용시 손쉬운 타임아웃 적용.

How to use

종료 기간:

async with timeout(1.5):
    await inner()

정확한 종료 시간:

loop = asyncio.get_event_loop()
now = loop.time()

async with timeout_at(now + 1.5):
    await inner()

타임아웃 여부 확인:

async with timeout(1.5) as cm:
    await inner()
print(cm.expired)

Timeout 컨텍스트 관리자에 의해 inner() 실행이 취소된 경우 True를 반환.

inner() 호출에서 명시적으로 TimeoutError를 발생시키는 경우 cm.expiredFalse입니다.

예정된 마감 시간은 .deadline 속성으로 사용할 수 있습니다.

예정된 종료 시간 확인:

async with timeout(1.5) as cm:
    cm.deadline

종료 재 설정:

async with timeout(1.5) as cm:
    cm.shift_by(1)  # add another second on waiting
    cm.shift_to(loop.time() + 5)  # reschedule to now+5 seconds

See also

Favorite site