PHP가 예약된 작업을 구현하는 방법은 다음과 같습니다. 1. Linux 시스템에서 crontab을 사용하여 구현합니다. 2.ignore_user_abort 함수를 사용하여 구현합니다. 3. file_get_contents 함수를 사용하여 구현합니다.
1. 서버 예약 작업
서버 예약 작업은 실제로 유닉스 시스템의 crontab 구현입니다. 구체적인 설정은 다음과 같습니다: Linux 예약 작업 crontab; 스크립트, 정기적으로 인터페이스를 호출하는 방법을 사용할 수도 있습니다.
(학습 영상 추천 : java 영상 튜토리얼)
스크립트 실행 시 :
*/1 * * * * php /data/www/cron.php 1분마다 cron.php 실행
URL 메소드 call :
lynx 방법: */1 * * * * lynx -dump http://www.xxxxxxx.com/cron.php (URL 출력을 표준 출력으로 변환하는 -dump 옵션)
curl 방법: */ 1 * * * * /usr/bin/curl -o temp.txt http://www.xxxxxxx.com/cron.php (Curl은 기본적으로 표준 출력에 출력을 표시합니다. "curl -o" 옵션을 사용하여 스크립트 출력 임시 파일 temp.txt로 덤프)
wget 방법: */1 * * * * /usr/bin/wget -q -O temp.txt http://www.xxxxxxx.com/cron.php (q 옵션은 자동 모드를 나타냅니다. "-O temp.txt"는 출력이 임시 파일로 전송된다는 의미입니다. )
위 방법은 php 스크립트를 url로 접근할 수 있는 주소에 두는 것입니다. http://www.xxxxxx.com./cron.php는 정기적으로 트리거 작업을 호출합니다.
2.ignore_user_abort() 메소드
ignore_user_abort() 함수는 클라이언트와의 연결을 끊으면 스크립트 실행이 종료되는지 여부를 설정합니다.
먼저 cron.php 파일을 사용하여 스크립트 종료를 제어합니다. cron.php의 내용은 다음과 같습니다.
<?php return 1; ?>
스크립트 PHP 파일은 다음과 같습니다.
<?php ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行. set_time_limit(0);// 通过set_time_limit(0)可以让程序无限制的执行下去 $interval=60*30;// 每隔半小时运行 do{ $run = include 'config.php'; if(!$run) die('process abort'); //return 0 时, 终止 //TODO 该干啥干啥 sleep($interval);// 等待5分钟 } while(true);
cron.php의 반환 0을 변경하여 프로그램을 중지합니다. 하지만 이 방법은 메모리 관리에 좋지 않습니다.
3. File_get_contents() 메소드
<?php $time=15; $url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; //TODO sleep($time); file_get_contents($url); ?>
php 스크립트 sleep은 자체 액세스를 통해 일정 시간 후에도 계속 실행됩니다. 이렇게 하면 각 PHP 스크립트의 실행 시간이 너무 길지 않고 time_out으로 제한되지 않습니다. PHP 파일의 각 루프가 독립적으로 실행되기 때문에 이 방법은 time_out 제한을 방지합니다. 하지만 프로세스가 종료될 수 있도록 위와 같이 제어 코드 cron.php를 추가하는 것이 가장 좋습니다.
관련 권장 사항: php training
위 내용은 PHP에서 예약된 작업을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!