2012-11-05 6 views
0

사용자가 지정한 시간 동안 다른 사이트 (크롤러와 비슷한 것)에서 데이터를 수집하는 PHP 스크립트를 실행하고 싶습니다. 전의. 사용자가 5 분 동안 크롤링을 선택하면 사용자가 페이지를 떠난 경우에도 PHP가 5 분 동안 시작되고 실행됩니다. 그런 다음 그는 돌아와 결과를 볼 수 있습니다.사용자가 페이지를 떠나더라도 PHP 스크립트를 실행하십시오.

답변

1

에서 ignore_user_abort은 - 클라이언트 연결 끊기 스크립트 실행

http://php.net/manual/en/function.ignore-user-abort.php

스크립트 실행 시간 제한과 같은 고려해야 할 많은 일들이 있습니다를 중단할지 여부를 설정합니다. 이 작업을 수행하는 'enterprisey'방법은 작업 또는 메시지 대기열로 작업을 오프로드하는 것입니다.

+0

답변 해 주셔서 감사합니다. 작업 대기열을 검색했지만 이해할 수는 없습니다. 5 명의 사용자가 사이트를 크롤링하기를 원하면 크롤링이 "동시에 시작"됩니까? 아니면 차례대로 시작합니까? – user1798707

+0

아파치 설정 방법에 따라 다릅니다. 일반적으로 PHP가되기 전에 요청을 조절합니다. –

0

나는 당신이 crontab/cronjob (리눅스 웹 서버를 사용한다면)을 봐야한다고 생각한다.

그러면 크롤링 대상 및 대상에 대한 데이터베이스를 만들 수 있습니다.

로그인 시스템이없는 경우 크롤링 결과를 세션 또는 사용자 브라우저의 쿠키에 연결해야합니다.

스크립트 및 데이터베이스가 만들어 질 때, 당신은 SSH/텔넷에서이 명령으로 매 순간을 실행하기 위해 데이터를 수집하는 PHP 스크립트를 만들 수 있습니다

* * * * * php /path/to/script.php

당신은 SSH에 액세스 할 수없는 경우/Telnet 쉘, 대부분의 제어판에는 crontab 기능이 있습니다.

+0

안녕하세요. 답변 해주셔서 감사합니다. 쿠키와 크론 작업이있는 데이터베이스에 대해서는 정확히 같은 생각을했습니다. 그러나 지금까지는 PHP 내부에서 cron 작업을 호출 할 수 있는지 확실하지 않습니다. 이것이 어떻게 이루어 졌는지 아십니까? 나는 그들 중 대부분이 명령 행에서 cron 작업을 사용하기 때문에 내가 읽은 튜토리얼과 다소 혼동 스럽다. – user1798707

관련 문제