asyncioget_event_loop() Deprecated
파이썬 3.12 로 업그레이드하면서 asyncio 의 get_event_loop()가 deprecate가 됐다.
파이썬 3.12 이전 버전에선 asyncio 에서 다음의 형식으로 개발을 했었다.
def run(self): loop = asyncio.get_event_loop() tasks = [] task = asyncio.ensure_future(self.run_func1()) tasks.append(task) task = asyncio.ensure_future(self.run_func2()) tasks.append(task) loop.run_until_complete(asyncio.await(tasks)) |
파이썬 공식 문서를 보니 get_event_loop()는 3.12. 버전부터 현재의 event loop 가 없는 경우에 deprecate 경고를, 추후에는 에러가 발생한다고 한다.
asyncio 사용 방식 변경
이번 기회에 파이썬에서 사용하던 asyncio 방식을 좀 바꿔볼려고 공식 문서를 보다가 다음의 형태로 변경했다.
async def run(self): await asyncio.gather( self.run_func1(), self.run_func2(), ) def main(): app = ClassName() asyncio.run(app.run()) |
deprecate 경고없이 실행되는 것 확인.