문제

상태 요청 PG_CONNECTION_BUSY ()를 보낼 때 요청이 "Connection Busy"와 "Server Busy"를 구별합니까?

즉, 서버에는 100 개의 허용 연결이 있으며 그 중 하나는 현재 스크립트에 적용됩니다. 100 개의 연결은 동시에 쿼리를 동시에 보내고, 99 개는 2 초 이상의 처리 시간이 필요하며 (이론적으로 서버를 최대 상태에 넣어서 "바쁘게 만들었습니다). 이 100 개의 요청 중 하나는 a pg_server_busy() 요구. 응답이 될 것입니다 True 또는 False?

도움이 되었습니까?

해결책

pg_connection_busy() 기본적으로 libpq를 호출합니다 PQconsumeInput() 그 뒤에 PQisBusy(), 둘 다 문서화되어 있습니다비동기 명령 처리.

이것은 서버가 다른 연결로 전반적으로 바쁘다는 것과 관련이 없습니다. 또한, 쿼리 또는 다른 방법으로는 아무것도 보내지 않습니다. 결과를 비동기 적으로 검색 할 때 들어오는 데이터의 버퍼링에 대한 순전히 로컬 조건입니다.

불행히도 PHP의 문서에 의해 주어진 예는 오해의 소지가 있습니다. 전화 pg_connection_busy() 비동기 쿼리가 실행되지 않은 새로운 연결에서는 의미가 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top