> 백엔드 개발 > PHP 문제 > PHP에서 예약된 작업을 구현하는 방법은 무엇입니까?

PHP에서 예약된 작업을 구현하는 방법은 무엇입니까?

王林
풀어 주다: 2023-03-07 15:10:01
원래의
2448명이 탐색했습니다.

PHP가 예약된 작업을 구현하는 방법은 다음과 같습니다. 1. Linux 시스템에서 crontab을 사용하여 구현합니다. 2.ignore_user_abort 함수를 사용하여 구현합니다. 3. file_get_contents 함수를 사용하여 구현합니다.

PHP에서 예약된 작업을 구현하는 방법은 무엇입니까?

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 &#39;config.php&#39;;
if(!$run) die(&#39;process abort&#39;);  //return 0 时, 终止
//TODO 该干啥干啥
sleep($interval);// 等待5分钟
}
while(true);
로그인 후 복사

cron.php의 반환 0을 변경하여 프로그램을 중지합니다. 하지만 이 방법은 메모리 관리에 좋지 않습니다.

3. File_get_contents() 메소드

<?php
$time=15;
$url="http://".$_SERVER[&#39;HTTP_HOST&#39;].$_SERVER[&#39;REQUEST_URI&#39;];
//TODO
sleep($time);
file_get_contents($url);
?>
로그인 후 복사

php 스크립트 sleep은 자체 액세스를 통해 일정 시간 후에도 계속 실행됩니다. 이렇게 하면 각 PHP 스크립트의 실행 시간이 너무 길지 않고 time_out으로 제한되지 않습니다. PHP 파일의 각 루프가 독립적으로 실행되기 때문에 이 방법은 time_out 제한을 방지합니다. 하지만 프로세스가 종료될 수 있도록 위와 같이 제어 코드 cron.php를 추가하는 것이 가장 좋습니다.

관련 권장 사항: php training

위 내용은 PHP에서 예약된 작업을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿