inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)

오픈 API를 활용한 이미지 데이터 수집

window 10 환경에서 RuntimeError: Event loop is closed 에러

해결된 질문

968

Jk

작성한 질문수 2

2

안녕하세요. 좋은 강의를 통해 많은 배움을 얻어가고 있습니다. 

 

12/14에 bee님께서 남겨주신 질문과 비슷한 에러가 발생하여 질문드립니다.

3-5 강의(오픈 API를 활용한 이미지 데이터 수집)에서 4분30초 즈음의 테스트코드(강의코드와 동일)를 날린 상황에 마찬가지로 RuntimeError: Event loop is closed가 발생하고 있습니다.

 

 

urls = [f"{BASE_URL}?query={keyword}&display=20&start={i}" for i in range(1, 10)]

코드에서 start의 범위를 1~9, 1~10, 1~11 등으로 변경할 때는 정상 출력되고, 동일한 페이지 범위에 대해 두 번 이상 실행할 때마다 에러가 발생했었습니다.(이것 또한, 때마다 다른 듯한..?)

이유가 무엇일까요..?

특히 요청의 마지막에서 에러가 발생하는 것 같아보였습니다. 예를 들어 start 파라미터로 [1~9] 페이지를 받을 때, 8페이지까지는 받아오는 것으로 보였습니다.

 

저의 환경은 윈도우10 vscode에서

파이썬3.7.10,

aiohttp 3.7.3 버전을 활용하고 있습니다.

 

또한 한가지 더 문의드릴 사항이.. try, except로 위의 에러 발생에 pass를 해도 pass로 넘어가는 경우도 있고, pass로 넘어가지 않는 경우가 있네요..? (try, except를 메인루틴안에도 넣어보고, fetch함수의 with session 앞에 넣어보기도 했었습니다.)

혹시 async 에서 예외처리하는 방법이 따로 있는지요?

 

 

python 동시성 FastAPI

답변 1

1

윤상석

안녕하세요!

  1. 파이썬 버전 3.8을 넘어가면서 윈도우 운영체제에서는 기본적으로 유닉스 기반 운영체제와 달리 ProactorEventLoop 정책이 사용됩니다. 아래의 코드를 통해 이벤트 루프 정책을 유닉스 기반 운영체제와 동일하게 맞춰주세요! asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
  2. 후에 강의에서 설명하지만 start는 단순히 시작점을 의미합니다! 따라서 원하시는 페이지네이션이 구현이 안되었을 가능성이 큽니다! 아직 문제가 해결되지 않으셨다면 전체 코드를 볼 수 있을까요?
  3. 아무래도 1번 문제일 가능성이 큰데 혹시 어떤 코드에서 에러가 안잡히는지 알 수 있을까요?? 보통 await 코드를 작성한 부분을 try except로 묶어 캐치해주는 것이 깔끔합니다.

즐거운 연말 보내세요!

감사합니다.

대규모 크롤링 시 동시 요청 수 제어 방법

0

111

2

AWS LighSail 접근 불가

0

148

1

강의상의 readme와 배포되어 있는 것이 다른 것 같아요

0

112

1

book_scraper.py 에서 import get_secret 관련 질문

0

114

1

ThreadPoolExecutor 중간에 멈추는 법

0

307

1

몽고Db 기초 질문

0

205

1

async await 문법 질문

0

243

1

멀티 스레딩 질문..

0

200

1

교안 제공은 안되나요?

0

231

1

TypeError: field Config is defined without type annotation

0

263

1

RuntimeWarning: Enable tracemalloc to get the object allocation traceback

0

1723

1

jinja2templates

0

252

1

몽고DB 설정 관련 질문

0

250

1

비동기 함수를 동기적인 실행으로 만드는 부분 질문입니다

1

324

2

proxy 사용 질문

0

269

1

AWS Lightsail SSL handshake failed 오류 문의드립니다.

0

501

1

동시성과 병렬성

0

329

1

python select linter ? 오류

1

743

2

수업질문

1

356

1

response 객체에서 키값으로 조회 시 KeyError 발생

0

579

1

from config import get_secret 질문

0

391

1

파이썬 코루틴활용 영상 질문

0

283

1

가상환경 설정 질문

0

324

1

pydantic import error

0

1234

2