* asyncio의 event_loop 실행하기.
loop.run_until_complete(future)
future(Future의 인스턴스)가 완료할 때까지 실행시키는 함수이다.
인자가 코루틴 객체 면, asyncio.Task로 실행되도록 묵시적으로 예약된다.
퓨처의 결과를 반환하거나 퓨처의 예외를 발생시킨다.
* python 3.7버전부터는 event_loop를 직접 얻어와 future를 실행하는 저수준 API를 사용하는 것보다,
아래와 같이 run()함수를 통해 코루틴을 실행시키는 것을 권장한다.
asyncio.run(coro, *, debug=False)
이 함수는 전달된 코루틴을 실행하고, asyncio 이벤트 루프와 비동기 제너레이터의 파이널리제이션을 관리합니다.
다른 asyncio 이벤트 루프가 같은 스레드에서 실행 중일 때, 이 함수를 호출할 수 없습니다.
debug이 True면, 이벤트 루프가 디버그 모드로 실행됩니다.
이 함수는 항상 새 이벤트 루프를 만들고 끝에 이벤트 루프를 닫습니다.
asyncio 프로그램의 메인 진입 지점으로 사용해야 하고, 이상적으로는 한 번만 호출해야 합니다.
* 이 함수는 파이썬 3.7에서 잠정적으로 asyncio에 추가됨.
필자는 test 코드를 작성할 때,
임의의 여러 데이터를 PynamoDB의 모델 객체로 만들고,
데이터베이스에 저장하는 작업을 위의 futures 객체 리스트로 만들어 gather() function을 이용해 동시에 수행하는 코드로 활용한 적이 있었다.
댓글 영역