PHP를 사용하여 서버 A에서 서버 B로 병렬 요청을 만들고 싶습니다. Curl Multi Handle과 Http Pooling 중에서 가장 좋은 방법은 무엇입니까?PHP Http Pooling 대 Curl Multi
이 두 가지 장단점은 무엇입니까?
성능, 메모리 사용량, CPU 사용량에있어 최적의 방법을 제안 해주십시오.
PHP를 사용하여 서버 A에서 서버 B로 병렬 요청을 만들고 싶습니다. Curl Multi Handle과 Http Pooling 중에서 가장 좋은 방법은 무엇입니까?PHP Http Pooling 대 Curl Multi
이 두 가지 장단점은 무엇입니까?
성능, 메모리 사용량, CPU 사용량에있어 최적의 방법을 제안 해주십시오.
PHP는 표준 CURL 명령과 반대되는 이유로 메모리에서 실제로 벗어납니다. 또한 curl은 병렬 요청을 처리 할 수 없습니다. multi 명령은 모든 요청이 완료 될 때까지 정지 할 블록 단위로 요청을 실행합니다. 필자가 알고있는 한 PHP에서 병렬 요청을 할 수 없습니다. 가장 좋은 방법은 명령 줄에서 xargs를하고 컬을 사용하는 것입니다 :이 파일의 URL (또는 컬 명령)을 다운로드합니다
cat urls.txt | xargs -L 1 -P 10 timeout 45 curl
. -L은 행 수를, -P는 원하는 병렬 연결 수를 의미합니다.
PHP에서 exec 또는 시스템을 통해이를 실행하는 것이 가장 효율적입니다. 또는 당신 같은 CURL 래퍼를 사용하는 것이 좋습니다 :
http://semlabs.co.uk/journal/object-oriented-curl-class-with-multi-threading
그러나 언급 한 바와 같이,이 평행하지 않습니다.