플라스크 응용 프로그램이 있으며 대부분의 요청이 동시에 실행되기를 원합니다. App.run (thread = True)을 설정하면 이것이 대부분의 경우 작동하는 것 같습니다. 그러나이 엔드 포인트에 대한 요청이 동시에 실행되지 않도록 제한하려는이 엔드 포인트/라우트가 있습니다. 이것을 할 수있는 방법이 있습니까?플라스크가 특정 경로에 대한 동시 요청을 제한합니다.
0
A
답변
0
경로별로 선언적으로 수행 할 수 있다고 생각하지 않습니다.
그래도 threading.lock
또는 더 좋게는 multiprocessing.lock
을 사용하여 일련의 처리가 필요한 실제 처리를 직렬화 할 수 있습니다. 요청 핸들러는 잠금을 확보 할 때까지 기다립니다. 정상적인 실행 중에뿐만 아니라 다양한 오류 시나리오에서 잠금을 해제하는 데 많은주의를 기울이십시오.
왜이 작업을 수행 하시겠습니까? 일반적으로 가능하지 않습니다. – davidism
하나의 엔드 포인트는 [dredd] (https://github.com/apiaryio/dredd)를 실행합니다. 동시에 둘 이상이 실행될 때 소켓 오류가 발생하는 것 같습니다. – Murdius