2009-08-01 1 views
1

나는 수직 검색 엔진을 개발 중이다. 사용자가 항목을 검색 할 때 Google 사이트는 다양한 시장에서 수많은 피드를로드합니다. 유감스럽게도 피드의 내용을 빠르게로드, 파싱 및 정렬하는 데 오랜 시간이 걸리고 사용자가 약간의 지연을 경험합니다. 나는이 피드를 DB에 저장할 수 없으며 피드의 내용이 끊임없이 변경되기 때문에 캐시 할 수 없습니다.동시에 피드 공급

동시에 PHP에서 동시에 여러 피드를 처리 할 수있는 방법이 있습니까? 내가 popen 또는 거기에 더 나은 PHP 병렬 처리 방법을 사용해야합니까?

감사합니다. 러스

답변

1

당신이 피드를 가져 컬 사용하는 경우에는 병렬로 여러 HTTP 요청을 할 수있는 기능 curl_multi_exec, 한 번 봐 걸릴 수 있습니다.
는 (주어진 예제는 여기에 복사 할 너무 깁니다.) 적어도 당신이 피드를 가져 오는 시간을 줄일 수 있도록 할

...


하면 서버가 거의 아무 때 일을하지 않습니다 고려 그것은 HTTP 요청이 끝나기를 기다리고 있으며, 그것들을 병렬 처리하면 해를 끼치 지 않을 것이라고 추측합니다.
반면에 피드를 병렬 처리하는 것은 CPU 사용량이 많은 작업 (XML 파싱 및 모든 경우) 일지라도 손해를 초래할 수 있습니다. (!) 참고로


:이 데이터의 일부를 캐시 정말 가능 그것을 하지? 2 분 동안 만 있으면 이벤트? 가장 자주 사용되는 데이터를 가져 및 예를 들어, 많은 도움이 될 수도, 캐시에 저장하는 cron 작업을 사용하여
...

그리고 웹 사이트가 빠른 정말보다 사용자에게 더 중요 응답 생각 정말 두 번째 결과에 날짜까지 ... 당신의 사이트가 응답하지 않으면, 그들은 다른 곳으로 갈거야!

0

나는 사람들이 느린 응답 시간을 용인하는 것보다 훨씬 빨리 캐싱을 용인 할 것이라고 동의한다. 몇 분마다 다시 캐시하십시오.

0

JavaScript를 통해 서버에 대해 여러 개의 동시 요청을 실행하는 결과 페이지를 설정해야합니다. 간단한 AJAX 요청으로이를 수행 한 다음 반환 된 데이터를로드가 완료되면 DOM에 삽입 할 수 있습니다. PHP는 현재 스레딩을 지원하지 않습니다. 현재 요청을 병렬 처리하는 것이 유일한 해결책입니다. http://docs.jquery.com/Ajax/load#urldatacallback

: 여기

는 웹 사이트에서 원격 데이터를로드하고 DOM에 주입하기 위해 jQuery를 사용하여 몇 가지 예입니다