2011-01-10 6 views
2

API를 사용하여 정보를 크롤링하는 스크립트가 있습니다. 내가 원하는 것은이 스크립트를 계속 실행하여 데이터를 가져 와서 로컬 컴퓨터에 저장하는 것입니다. 로컬 호스트로 컴퓨터를 구성하고 phpmyadmin과 MySQL을 설치했습니다.localhost에서 PHP 스크립트를 계속 실행하려면 어떻게해야합니까?

+1

nix를 사용하는 경우 스크립트를 cron 작업으로 설정할 수 있습니다. – prodigitalson

+2

Windows에서 cronjob 대신 예약 된 작업을 사용할 수 있습니다. –

답변

4

아마 command line에서 실행하고 싶을 것입니다. 코드를 일정한 루프에 두어 항상 실행 상태로 유지하거나 cron 작업/예약 된 작업으로 실행되도록 예약합니다.

+0

이것은 Windows 머신이고 내 scrypt는 2 시간 동안 실행되지만 인터넷 익스플로러가 멈 추면/firefox가 충돌하면 – mathew

+0

Windows의 명령 줄에서 계속 실행할 수 있습니다. – mfonda

+0

다시 부팅 할 때 스크립트를 초기화해야 할 수도 있습니다. 나는 리눅스 시스템에서 데몬을 위해 이런 종류의 일을했다. – dqhendricks

2

이에 등 함수, 클래스를 제외하고, 기본 코드 랩 :

while (true) { 

이 :

sleep(2); 
} 

을 그런 다음 명령 줄에서 실행, 사용 :

$ php myscript.php 

Windows를 사용하는 경우 수동으로 PATH를 PHP에 추가해야합니다. Windows (Mac을 평생 사용)는 모르지만 My Machine의 Properties에서이 작업을 수행 할 수 있다고 생각합니다. :)

+0

오랫동안이 스크립트를 시작했을 때 나는 수면 기능을 처음부터 추가했습니다. 하지만 수면 기능으로 인해 잡는 데이터의 수가 적습니다. 그래서 거기에 다른 alternetive ?? – mathew

+0

잠을 0.5와 같은 더 낮은 값으로 설정하거나 완전히 제거하여 스크립트에서 DDoS 공격을 수행합니다. :)하지만 API를 사용하지 못하게되면 너무 많은 요청에주의해야합니다. –

+0

어떻게 커맨드 라인에 경로를 넣을 수 있습니까 ?? 내 경로는 c : \\ apache \ wwww \ – mathew

0

set_time_limit에 대해 읽거나 php.ini 파일에서 max_execution_time 값을 수정하십시오.

0

PHP 루프 대신 배치 파일 루프를 사용하십시오. .

이것은 set_time_limit, 최대 메모리 등의 문제를 해결합니다. PHP가 충돌해도 아무 문제없이 새로운 인스턴스가 즉시 시작됩니다.

@echo off 
:loop 
php myScrapeScript.php 
goto loop; 
관련 문제