特定のプログラムを監視するために、スケジュールされたタスクが必要になる場合があります。プログラムは自動的に実行される必要があります。
1.ignore_user_abort()
ignore_user_abort() 関数を set_time_limit(0) および sleep($interval) と組み合わせて使用すると、プログラムの自動実行と更新を実現できます。
例:
//クライアントが切断されても(ブラウザを閉じるなど)、PHPスクリプトは実行を継続できます。
ignore_user_abort();
//実行時間は無制限で、デフォルトはPHPの実行時間は30秒ですが、set_time_limit(0)によりプログラムを無制限に実行できます
set_time_limit(0);
// 5分ごとに実行
$interval=60*5;
do{
$url = "http://yaolei.info";
$ch =curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setop t($ch , CURLOPT_TIMEOUT, 2);
$result =curl_exec($ch);
curl_close($ch);
// 5分間待ちます
sleep($interval);
}while(true);
上記のページを実行して閉じるだけで、プログラムは実行を続けます。
2. crontab
Linux には、crontab コマンドというより簡単な方法があります。crontab コマンドの機能は、特定の時間間隔でいくつかのコマンドの実行をスケジュールすることです。
crontabの使い方: crontab [ -e | -l | -r ] ファイル名 -e: タスクの編集 -l: タスク情報の表示 -r: 実行予定タスクの情報の削除
crontabの形式:
* * * * * コマンド
時間、日、月、週ごとに実行する crontab コマンド: