最近、プロジェクトが定期的にリモートデータベース上で何らかの処理を行う必要があるため、ここでスケジュールされたタスクのようなものを作成する必要があります。
苦労の末、このスケジュールされたタスクを PHP を使用して実装することができました。実装プロセスを共有しましょう。今回は PHP を使用してスケジュールされたタスクを実装するために、主に
ignore_user_abort() set_time_limit(0) sleep() の 3 つの関数を使用します。
具体的なコードは次のとおりです。
<p><?php</p>ignore_user_abort();//该函数的作用是当用户关掉浏览器后,PHP脚本也可以继续执行.<br />set_time_limit(3000);// 通过set_time_limit(0)可以让程序无限制的执行下去<br />$interval=5;// 每隔5s运行<br />//方法1--死循环<br />do{<br />echo '测试'.time().'<br/>'; <br />sleep($interval);// 等待5s <br />}while(true);<br />//方法2---sleep 定时执行<br />require_once './curlClass.php';//引入文件<br />$curl=new httpCurl('www.phpernote.com');//实例化<br />$stime=$curl->getmicrotime();<br />for($i=0;$i<=10;$i++){<br />echo '测试'.time().'<br/>'; <br />sleep($interval);// 等待5s<br />}<br />ob_flush();<br />flush();<br />$etime=$curl->getmicrotime();<br />echo '<hr>';<br /><p>echo round(($etime-stime),4);//程序执行时间</p>
具体的な実装プロセスでは、PHP のスケジュールされたタスクの効率化が個人的に感じられます。タスクを定期的に実行するタスクはシェルに任せることをお勧めします。比較的、この方法は実装が難しく、シェルはプロフェッショナル レベルです。