>백엔드 개발 >PHP 튜토리얼 >PHP가 일정에 따라 예약된 작업을 실행하도록 타이밍을 맞추는 다양한 방법 요약

PHP가 일정에 따라 예약된 작업을 실행하도록 타이밍을 맞추는 다양한 방법 요약

WBOY
WBOY원래의
2016-07-29 08:47:261054검색

PHP 예약 실행을 구현하는 세 가지 방법
1. Windows 예약 작업
2. Linux 스크립트
3. 웹 브라우저를 정기적으로 새로 고치도록 합니다
특정 구현
Windows 예약 작업
PHP는 거의 실행되지 않습니다. win 서버에서는 구체적인 구현에 대해 자세히 연구하지 않습니다. 온라인 구현의 원칙은 아마도 bat 스크립트를 작성한 다음 창 작업에서 bat 스크립트를 추가하고 실행하는 것입니다. 자세한 내용은 http: //www.jb51.net/article/29134.htm
Linux 스크립트 구현
여기에서는 주로 crontab 명령이 사용됩니다.
사용 방법:
crontab filecrontab [ -u user ] [ -u user ] { -l | -r | -e }
설명:
crontab은 사용자가 고정된 시간 또는 고정된 간격으로 프로그램을 실행할 수 있도록 하는 데 사용됩니다.
crontab을 사용하여 쉘 스크립트를 작성한 다음 PHP가 이는 PHP 자체 언어의 기능에 포함되어서는 안 되는 Linux 기능을 사용하는 것입니다
http://www.jb51.net/article/29136.htm
PHP는 예약 실행을 구현합니다. 예약된 작업
php를 사용하여 브라우저 새로 고침을 수행하려면 여러 문제를 해결해야 합니다.
PHP 스크립트 실행 시간 제한, 기본값은 30m입니다. 해결 방법: set_time_limit() 또는 PHP.ini를 수정하여 max_execution_time 시간 설정(권장하지 않음) 🎜> 클라이언트 브라우저가 닫히면 프로그램이 강제 종료될 수 있습니다. 해결책:ignore_user_abort는 페이지가 닫혀도 계속 정상적으로 실행됩니다.
프로그램이 항상 실행되면 많은 것을 소비할 가능성이 높습니다. 해결책은 sleep을 사용하여 잠시 동안 잠자기 프로그램을 사용한 다음 실행하는 것입니다.
PHP는 정기적으로 코드를 실행합니다:

코드 복사 코드는 다음과 같습니다.

ignore_user_abort();//브라우저를 끄고 PHP 스크립트도 계속 실행할 수 있습니다.
set_time_limit(3000);/ / set_time_limit(0)을 통해 프로그램을 제한 없이 실행할 수 있다
$interval=5;// 5초마다 실행
//방법 1--무한 루프
do{
echo 'test' .time().'
';
sleep($interval);// 5초간 대기
}while(true)
//방법 2---sleep 예약 실행
require_once './curlClass.php';//소개 파일
$curl = new httpCurl();//인스턴스화
$stime = $curl->getmicrotime()
for($ i=0;$i<=10;$i ){
echo 'test'.time().'< br/>'
sleep($interval);// 5초 기다리세요
}
ob_flush();
flush();
$etime = $curl->getmicrotime( )
echo '


'; etime-stime),4);//프로그램 실행 시간


테스트 중 발견 이 효율성은 그다지 높지 않습니다.

요약:  PHP定时执行计划任务的多种方法小结개인적으로는 PHP의 시간에 따른 작업 실행이 그리 효율적이지 않다고 생각합니다. 시간에 따른 작업 실행은 쉘에 맡기는 것이 좋습니다.
ps: 무한 루프 방식은 웹사이트에 대한 악성 공격에서 자주 사용되는 방식인 것 같습니다

위에서는 타이밍 측면을 포함하여 PHP가 예약된 작업을 일정에 따라 실행하는 다양한 방법을 요약하여 소개했습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.