728x90 반응형 SMALL Asyncio2 동일 API 호출에 대한 처리 방법(feat. asyncio) 1. 글을 쓰게 된 계기 동일 API를 호출하는 경우들이 굉장히 많다. 현재 상황은 다음과 같다. API요청이 들어왔을 때 해당 API에서 동작되는 함수들이 실행되고 최종적으로는 해당 결과가 db에 저장되도록 되어있다. 여기서 불필요한 API호출를 방지하기 위해 1. db에 있는 경우 함수가 작동되지 않도록 했다. 2. 함수가 작동되고 있는 경우 (기존과 동일한 요청에서 대해서) 함수가 작동되지 않도록 했다. 내가 글을 작성하는 내용은 2번의 상황을 해결하는 것이다. 2. 해결 방법 간단하게 asyncio.Lock()을 사용하면 해결할 수 있다. emailUid_locks = {} # emailUid = "test1234" if emailUid in emailUid_locks: logging.info(f.. 2023. 9. 5. Python asyncio를 활용한 비동기 프로그래밍 1. 글을 쓰게 된 이유 서비스 프로그램을 만들면서 asynico를 사용해서 코딩을 해야하는데 생각보다 비동기를 사용하면 굉장히 좋은 서비스를 만들 수 있고 속도 문제도 해결할 수 있다는 사실을 알게되었다. 2. 파이썬에서 비동기 프로그래밍 - 자바스크립트와 같이 애초에 비동기 방식으로 동작하도록 설계된 언어는 익숙한 개념이다 - 파이썬과 같이 동기 방식으로 동작하는 언어에서는 생소하지만 - 파이썬 3.4에서 asyncio 모듈이 표준 라이브러리로 추가되면서 - 파이썬 3.5에서 async / await 키워드가 문법으로 채택이 되면서 - 파이썬도 외부 라이브러리 없이 프로그래밍이 가능해졌다. 3. 핵심 문법 - def(동기 방식) / async def(비동기 방식) 아래와 같은 비동기 방식으로 만들어진.. 2023. 8. 25. 이전 1 다음 728x90 반응형 LIST