이전에 비동기와 논블로킹으로 코드를 변경하고, 교착상태에 빠졌다.
현재 코드에서는 hotel.py에서 전역변수로 Browser-Session을 사용하고 있어서 사용자가 다중 호텔 예약 시 하나의 브라우저 세션을 사용하여 여러 개를 예약하려고하여 교착상태에 빠졌다.
사용자에게 가상 모니터를 띄어줄 때 새 탭으로 여러 호텔 예약이 가능하게 할 것인지, 아니면 새 창으로 여러 호텔 예약을 가능하게 할 것인지 고민하였다.
새 탭으로 하려면 하나의 브라우저 세션으로 처리해야돼서 user_id 및 session_id를 받고 요청이 들어올 때 마다 user_id 및 session_id를 조회하여 새탭을 생성해야 되고 시나리오가 3가지 정도 였다.
시나리오 1
호텔 A : 카드 번호 페이지
호텔 B : 카드 번호 페이지
A만 입력 후 에이전트 다시 시작
호텔 B는 강제적으로 카드번호 입력 실패
시나리오 2
호텔 A : 카드 번호 페이지
호텔 B : 카드 번호 페이지
A,B 입력 후 에이전트 다시 시작
호텔 A가 먼저 카드 번호 페이지에 진입했어도 호텔 B가 카드 번호 페이지에 진입할 때까지 기다려야함
-> return을 한 번에 묶어서 보냄
시나리오 3
호텔 A : 카드 번호 페이지
호텔 B : 예약 중
A만 입력 후 에이전트 다시 시작
A는 완료돼어 return 보내고 B는 계속 예약중
그래서 새 창으로 해결하기로 했다.
hotel.py에서 전역변수로 Browser-Session을 사용하고 있던 것을 main.py의 fastapi 요청 받을 때마다 생성하고 session을 넘겨주는 방식으로 교착상태를 해결하였다.
| Agent Development Kit (ADK) and Multi-Agent Architecture (0) | 2025.11.08 |
|---|---|
| AI커리어 스쿨 창업톤 본선 진출 (0) | 2025.10.07 |
| Spring 비동기 호출과 논블로킹 I/O 적용 (0) | 2025.08.28 |
| Agnet 서버와 Spring 서버 상호작용 개선 및 통합 예약 처리 전략 (0) | 2025.08.28 |
| 알고리즘 문제 해결(?) (0) | 2025.08.17 |