最近、プロジェクトが定期的にリモートデータベース上で何らかの処理を行う必要があるため、ここでスケジュールされたタスクのようなものを作成する必要があります。苦労の末、今回は計画したタスクを PHP で実装することができましたので、その実装プロセスを共有しましょう。
今回は PHP を使用してスケジュールされたタスクを実装するために、主に 3 つの関数ignore_user_abort() set_time_limit(0) 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('www.Alixixi.com');//实例化 $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);//程序执行时间
具体的な実装プロセスでは、PHP のスケジュールされたタスクの実行の効率は高くないと個人的に感じています。この方法は、比較的、シェルに任せることをお勧めします。 、シェル それはプロレベルです。