문제는 여기서 발생했습니다. 상태를 확인하는 시점과 실제로 요청을 할당하는 시점 사이에는 아무런 보장이 없었다는 점입니다.
async def distribute_request(request):
index = get_next_index() # 순번 결정
pod = pods[index]
available = await is_pod_available(pod) # 상태 확인
if available:
await assign_request(pod, request) # 할당
return {"success": True, "assigned_to": pod.id}
# 다음 파드 시도
이 코드는 문법적으로 완벽했음에도 문제가 발생했습니다.