2013-10-14 2 views
2

file_get_contents/curl을 사용하여 PHP 스크립트에서 다른 서버에있는 하나의 API에 액세스 할 수 있습니다. 이 API는 빠르지 않으며 응답하는데 최대 10 초가 걸릴 수 있습니다.file_get_contents/curl 다른 클라이언트를 차단합니다.

이 API를 사용하는 동시에 내 웹 사이트에서 2 페이지를 열려고하면 하나씩로드됩니다. 즉, 서버가 두 번째 페이지에 대한 서버 요청을 시작하기 전에로드 될 때까지 기다려야합니다. .

저는 Apache2와 PHP를 리눅스에서 사용합니다. 이러한 동작을 피할 수있는 방법 중 하나가이 API에 액세스하는 동안 다른 클라이언트를 차단하고 싶지 않습니다. 도움이 필요하다!

감사합니다.

+5

세션을 동시에 두 번 열 수 없습니다. 'session_write_close();'를 사용하면 다른 프로세스 나 스레드를 위해 세션을 해제 할 수 있습니다. – bwoebi

+0

오, 정말 고마워요! 당신은 저의 하루를 저축했습니다 :))) – let4be

+0

방금 ​​짐작했습니다 ... ^^ 그것은 일반적인 문제입니다. 그리고 그래, 그 중 하나는 Google에 어렵습니다 ... – bwoebi

답변

0

예.

이 PHP 라이브러리가 있습니다 : http://code.google.com/p/multirequest/ (다중 스레드 CURL 라이브러리입니다).

다른 해결책으로, 루비 또는 파이썬과 같은 스레딩을 지원하는 언어로 스크립트를 작성할 수 있습니다. 그런 다음 PHP로 스크립트를 호출하십시오. 오히려 간단합니다.

+0

bwoebi 올바른 해결책을 설명했다. 이것은 Google과 문서에서 찾기가 너무 어려울 것 같습니다. – let4be

+0

추가적으로, 그것은 다중 쓰레드 _at all_을 사용하지 않으며, non-blocking I/O를 사용합니다 ... –

관련 문제