본문 바로가기
반응형

run_in_executor2

[Python] 코루틴으로 짜여있지 않은 함수 비동기적으로 이용하기(feat.run_in_executor) | LIM 파이썬에서 비동기 처리를 할 때 await 뒤에 오는 함수 역시 코루틴으로 작성되어 있어야 비동기적인 작업이 가능하다. 비동기로 짜여져 있는 라이브러리도 있으나 보통은 비동기를 고려하지 않고 짜여진 라이브러리가 대부분이다. 그럴 때 event loop 의 run_in_executor 함수를 이용하면 동기적인 함수를 비동기적으로 이용할 수 있다. ✔️ 먼저, asyncio.get_event_loop()를 활용해서 현재 이벤트 루프를 받아온 후 이벤트 루프의 run_in_executor 를 사용한다. run_in_executor는 다음과 같이 정의되어 있다. def run_in_executor(self, executor, func, *args): self._check_closed() if self._debu.. 2022. 7. 14.
[Python] functools 의 partial | LIM 🧐 functools 모듈이란? functools 모듈을 몇 가지 고위 함수를 통합한다. 그 중 가장 널리 알려진 함수가 reduce() 함수이다. functools에서 제공하는 나머지 함수 중 partial() 및 이의 변형인 partialmethod() 함수가 매우 유용하다고 한다. ✔️ run_in_executor 에 이용한 functools.partial functools.partial()은 함수를 부분적으로 실행할 수 있게 해주는 고위함수이다. 어떤 함수가 있을 때 partial()을 적용하면 원래 함수의 일부 인수를 고정한 콜러블을 생성한다. 이 기법은 하나 이상의 인수를 받는 함수를 그보다 적은 인수를 받는 콜백 함수를 사용하는 API에 사용하고자 할 때 유용하다. 예를 들어 비동기 처리할 .. 2022. 7. 9.
반응형