느린 구독자가 생중계를 멈췄다 · 생중계가 밀리는 이유 · 퀴즈
퀴즈: 생중계가 밀리는 이유
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
유입 100개/초, 처리 60개/초가 계속되면 큐 크기 확대의 효과는?
- 지속 처리 부족 자체가 해결된다
- 포화까지 버틸 시간만 늘어난다
- 느린 구독자의 처리율이 늘어난다
- 업무 ACK 없이도 성공이 보장된다
asyncio.Queue(maxsize=0)을 만들면?
- 어떤 항목도 넣을 수 없다
- 첫 항목마다 QueueFull이 난다
- 대기 용량의 상한이 없어진다
- put이 모든 업무를 즉시 끝낸다
용량 4의 큐가 가득 차고 작업자가 1개 처리 중이면?
- 연결 전체에는 최대 4개만 존재한다
- 처리 중 항목은 자동으로 폐기된다
- 남은 항목은 반드시 디스크로 옮겨진다
- 대기 4개 외에 처리 중 1개가 존재한다
가득 찬 큐에서 await put 중인 발행을 취소하면 지켜야 할 것은?
- 취소를 전달하고 기존 항목을 보존한다
- 기존 항목을 지워 취소된 항목을 넣는다
- 성공을 반환하고 나중에 몰래 넣는다
- 큐를 비워 모든 구독자의 작업을 취소한다
CPU를 계속 쓰는 무한 반복을 async def 안에 넣으면?
- 모든 반복이 자동으로 다른 코어로 간다
- 함수 선언만으로 연결 공정성이 보장된다
- 제어권을 내놓지 않아 다른 작업도 밀린다
- Queue가 자동으로 반복 횟수를 제한한다
queue.join이 반환했다는 사실로 바로 알 수 있는 것은?
- 원격 데이터가 영구 저장되었다
- 등록된 작업의 task_done 대응이 끝났다
- 재접속해도 어떤 중복도 발생하지 않는다
- 모든 TCP 소켓이 이미 회수되었다