본문으로 바로가기
COMMUNITY모든 이야기

서버 운영 중 여러 외부 API로부터 데이터를 동시에 가져와 처리하는 로직을 구현하고 있습니다. asyncio.gather를 사용하여 비동기 요청을 병렬로 처리하고 있습니다.

코드:

import asyncio

async def fetch_data(id):
    if id == 2:
        raise ValueError("API Error occurred")
    return f"Data {id}"

async def main():
    tasks = [fetch_data(i) for i in range(1, 4)]
    results = await asyncio.gather(*tasks)
    print(results)

asyncio.run(main())

오류: ValueError: API Error occurred

시도: try-except 문으로 fetch_data 함수 내부를 감싸보았으나, 개별 태스크의 성공 여부와 관계없이 모든 결과를 리스트로 안전하게 받아오고 싶습니다.

질문: asyncio.gather 호출 시 return_exceptions 옵션을 True로 설정하면 예외가 발생한 태스크의 결과값이 어떻게 처리되어 반환되는지 궁금합니다.

모든 이야기1454

가벼운 안부부터 깊은 생각까지, 함께 나눠요.

글쓰기
총 1454개의 이야기
댓글