ホームページ  >  記事  >  バックエンド開発  >  PHP にタスクを定期的に実行させる方法 (コード付き)

PHP にタスクを定期的に実行させる方法 (コード付き)

PHPz
PHPz転載
2016-07-29 08:33:281443ブラウズ

この記事は主に PHP にタスクを実行させる方法を紹介しています。興味のある方はぜひ参考にしてください。

PHP を使用して特定のタスクを定期的に実行する場合は、次の 2 つの方法があります:

1. Linux では crontab、Windows ではスケジュールされたタスク

2. PHP 関連の関数を使用します。

<span style="font-size: 14px;">set_time_limit(0);<br>ignore_user_abort(true);<br>//这里写一个死循环<br></span>

最初の方法が最も一般的です。PHP サーバー上で crontab を実行する権限がない場合は、定期的に crontab を実行してサーバーをリクエストすることもできます


2 番目の方法。 Apache を再起動する必要があります。fastcgi の方が良いでしょう。


例:index.phpとtest.txtを作成する機能は、test.txtに1秒ごとに数字を上書きして書き込むと数字が増えていきます。 Index.php のコードは次のとおりです。

<span style="font-size: 14px;"><?php<br>ignore_user_abort(true);<br>$num=0;<br>set_time_limit(0);<br>//ini_set('max_execution_time',0);   用这句也行,效果和set_time_limit(0)一样<br>do{<br>	file_put_contents('./test.txt',$num);<br>	$num++;<br>	sleep(1);<br>}while(true);<br></span>

ブラウザを閉じた後も、スクリプトはまだ実行でき、その数はまだ増加していることがわかりました。

その理由は、次の 2 つの主要な関数が機能しているためです:

ignore_user_abort(true) クライアントがブラウザを閉じるかどうかに関係なく、次のコードが実行されます。

set_time_limit(0) PHP ファイルの実行時間をキャンセルします。この関数がない場合、デフォルトの PHP 実行時間は 30 秒です。つまり、30 秒後にこのファイルは終了します。

これら 2 つの関数を使用しない場合は、php.ini を変更し、max_execution_time 構成項目を見つけて、30 を 0 に変更する必要があります。0 に設定すると、有効期限が切れないことを意味します。サーバーを再起動するだけです。

その他の関連チュートリアルについては、こちらをご覧ください

初心者からマスターまでの PHP プログラミングに関するビデオ チュートリアルの完全なセット

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。