이전 기사에서 PHP 예약 작업의 구현 원리를 소개했습니다. 모두가 PHP 예약 작업의 원리를 이해하고 있다고 믿습니다. 그래서 오늘은 PHP가 예약 작업의 예약 실행을 구현하는 방법을 계속해서 소개하겠습니다.
강좌 추천: "PHP 온라인 교육 과정"
1. Windows 예약 작업
1.test.php
라는 PHP 프로그램을 작성합니다. 다음과 같습니다
test.php
,内容如下所示
<? $fp = fopen("test.txt", "a+"); fwrite($fp, date("Y-m-d H:i:s") . " 成功成功了!\n"); fclose($fp); ?>
程序大胆地写,什么includerequire尽管用,都没问题
2、新建Bat
文件,命名为test.bat,内容如下所示:
D:\php\php.exe -q D:\website\test.php
3、建立WINDOWS计划任务:
开始–>控制面板–>任务计划–>添加任务计划
浏览文件夹选择上面的bat
文件
设置时间和密码(登陆WINDOWS的)
保存即可了。
4、over! 可以右键计划任务点“运行”试试
二、linux 的脚本实现
一、在Crontab
中使用PHP执行脚本
就像在Crontab中调用普通的shell脚本一样(具体Crontab用法),使用PHP程序来调用PHP脚本。
每一小时执行myscript.php
如下:
# crontab -e 00 * * * * /usr/local/bin/php /home/john/myscript.php
/usr/local/bin/php
为PHP程序的路径。
二、在Crontab中使用URL执行脚本
如果你的PHP脚本可以通过URL触发,你可以使用lynx或curl或wget来配置你的Crontab。
下面的例子是使用Lynx文本浏览器访问URL来每小时执行PHP脚本。Lynx文本浏览器默认使用对话方式打开URL。但是,像下面的,我在lynx命令行中使用-dump
选项来把URL的输出转换来标准输出。
00 * * * * lynx -dump http: //www.centos.bz/myscript.php
下面的例子是使用CURL访问URL来每5分执行PHP脚本。Curl默认在标准输出显示输出。使用”curl -o”选项,你也可以把脚本的输出转储到临时文件。
*/5 * * * * /usr/bin/curl -o temp.txt http: //www.centos.bz/myscript.php
下面的例子是使用WGET访问URL来每10分执行PHP脚本。-q选项表示安静模式。”-O temp.txt”表示输出会发送到临时文件
*/10 * * * * /usr/bin/wget -q -O temp.txt http: //www.centos.bz/myscript.php
三、PHP实现定时执行计划任务
使用php让浏览器刷新需要解决几个问题
1、PHP脚本执行时间限制,默认的是30m
解决办法:set_time_limit();
或者修改PHP.ini 设置max_execution_time
时间(不推荐)
2、如果客户端浏览器关闭,程序可能就被迫终止,解决办法:ignore_user_abort
即使关闭页面依然正常执行
3、如果程序一直执行很有可能会消耗大量的资源,解决办法使用sleep
<?php ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行. set_time_limit(3000);// 通过set_time_limit(0)可以让程序无限制的执行下去 $interval=5;// 每隔5s运行 //方法1--死循环 do{ echo '测试'.time().'<br/>'; sleep($interval);// 等待5s }while(true); //方法2---sleep 定时执行 require_once './curlClass.php';//引入文件 $curl = new httpCurl();//实例化 $stime = $curl->getmicrotime(); for($i=0;$i<=10;$i++){ echo '测试'.time().'<br/>'; sleep($interval);// 等待5s } ob_flush(); flush(); $etime = $curl->getmicrotime(); echo '<hr>'; echo round(($etime-stime),4);//程序执行时间
프로그램은 대담하게 작성되었으므로 어떤 includerequire를 사용해도 문제가 없습니다
2. 새로운 Bat
만들기 > 파일 이름을 test.bat로 지정하고 내용은 다음과 같습니다:
rrreee
시작->제어판->작업 일정->작업 계획 추가
폴더를 찾아 위의 bat
파일을 선택하세요
설정 시간과 비밀번호(WINDOWS에 로그인) 저장하세요.
1. PHP를 사용하여 Crontab
에서 스크립트를 실행합니다. Crontab과 마찬가지로 일반 쉘 스크립트(특정 Crontab 사용법)를 호출하는 것과 마찬가지로 PHP 프로그램을 사용하여 PHP 스크립트를 호출합니다.
다음과 같이 매시간 myscript.php
를 실행합니다:
🎜🎜rrreee🎜🎜🎜🎜 🎜🎜rrreee 🎜🎜rrreee🎜아래 예는 WGET을 사용하여 실행할 URL에 액세스하는 것입니다. 10분마다 PHP 스크립트. -q 옵션은 자동 모드를 나타냅니다. "-O temp.txt"는 출력이 임시 파일로 전송된다는 의미입니다🎜 🎜🎜rrreee 🎜🎜3. PHP는 예약된 작업의 예약된 실행을 구현합니다.🎜🎜🎜🎜PHP를 사용하여 브라우저를 새로 고치려면 여러 가지 문제를 해결해야 합니다.🎜🎜1. 기본값은 /usr/local/bin/php
(PHP용) 프로그램의 경로입니다. 🎜🎜🎜2. URL을 사용하여 Crontab에서 스크립트 실행 🎜🎜🎜PHP 스크립트를 URL로 실행할 수 있는 경우 lynx, cur 또는 wget을 사용하여 Crontab을 구성할 수 있습니다. 🎜🎜아래 예는 Lynx 텍스트 브라우저를 사용하여 URL에 액세스하여 매시간 PHP 스크립트를 실행하는 것입니다. Lynx 텍스트 브라우저는 기본적으로 대화 모드를 사용하여 URL을 엽니다. 그러나 아래와 같이 lynx 명령줄에서 -dump
옵션을 사용하여 URL 출력을 표준 출력으로 변환합니다. 🎜30m
입니다. : set_time_limit();또는 max_execution_time
시간을 설정하도록 PHP.ini를 수정합니다(권장하지 않음) 🎜🎜🎜2. 클라이언트 브라우저가 닫히면 프로그램이 강제로 실행될 수 있습니다. 종료 해결 방법 : ignore_user_abort
페이지가 닫혀도 정상적으로 실행됩니다. 🎜🎜🎜3. 프로그램이 계속 실행되면 많은 리소스를 소비할 가능성이 높습니다. sleep
으로 프로그램을 잠시 잠자게 했는데요. 그러다가 PHP 예약 실행 코드🎜🎜🎜🎜rrreee🎜를 실행할 때 효율성이 그다지 높지 않다는 것을 발견했습니다🎜🎜🎜요약:🎜🎜🎜🎜이것입니다. 이 기사에서는 Windows 예약 작업, Linux 스크립트 및 PHP를 사용하여 예약 작업을 실행합니다. 이 예제를 통해 PHP의 예약 작업 실행을 보다 직접적으로 이해할 수 있습니다. 도움이 되기를 바랍니다. 🎜🎜🎜관련 권장 사항: 🎜🎜🎜예약된 작업을 구현하는 PHP의 원리 분석🎜🎜🎜🎜🎜php 예약된 작업 및 연속 프로세스(fsockopen) 예제🎜🎜🎜🎜🎜php 예약된 작업 사용자 연결 상태 감지🎜🎜🎜
위 내용은 PHP에서 예약된 작업을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!