ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルで計画されたタスクを定期的に実行するためのさまざまな方法のまとめ

PHP_PHP チュートリアルで計画されたタスクを定期的に実行するためのさまざまな方法のまとめ

WBOY
WBOYオリジナル
2016-07-21 15:22:40824ブラウズ

PHP のスケジュールされた実行を実装する 3 つの方法
1. Windows のスケジュールされたタスク
2. Linux スクリプト
3. Web ブラウザーを定期的に更新する

Windows のスケジュールされたタスク

PHP は Win サーバーではほとんど使用されませんオンライン実装の原則は、おそらくバット スクリプトを作成し、ウィンドウ タスクにバット スクリプトを追加して実行させることです。詳細については、http://www.jb51 を参照してください。 .net/article/29134.htm

Linuxスクリプトの実装

ここでは主にcrontabコマンドを使用します
使用方法:
crontab filecrontab [ -u user ] [ -u user ] { -l | -r | -e }

説明:

crontabを使用して、ユーザーが一定の時間または一定の間隔でプログラムを実行できるようにします。

crontabを使用してシェルスクリプトを作成し、PHPにシェルを呼び出すようにします。 PHP 独自の言語の特性として考慮すべきではありません

以下を参照してください: http://www.jb51.net/article/29136.htm


PHP はスケジュールされたタスクのスケジュールされた実行を実装します

いくつかの問題がありますPHP を使用してブラウザを更新する場合は解決する必要があります
PHP スクリプトの実行時間制限、デフォルトは 30 分です。解決策: set_time_limit(); または PHP.ini を変更して max_execution_time 時間を設定します (推奨されません)。解決策: ページが閉じられている場合でも、ignore_user_abort は正常に実行されます。 プログラムの実行が継続すると、大量のリソースが消費される可能性があります。 解決策は、sleep を使用してしばらくスリープしてから実行することです。 PHP スケジュール実行コードを実行します:



コードをコピーします

コードは次のとおりです:

ignore_user_abort ();//ブラウザを閉じると、PHP スクリプトは実行を続行できます。 set_time_limit(3000);// set_time_limit(0) により、プログラムは無制限に実行可能
$interval=5;// 5 秒ごとに実行

// 方法 1--無限ループ
do{
echo 'test' .time().'
';
sleep($interval);// 5秒待つ
}while(true)//方法2---スケジュールされた実行をスリープする
require_once './ curlClass.php';//導入ファイル

$curl = new httpCurl();//インスタンシエーション
$stime = $curl->getmicrotime();
for($i=0;$i<=10;$ i++){

echo 'test'.time().'
'
sleep($interval);// 5 秒待ちます

}
ob_flush()
$etime = $curl->getmicrotime();
echo '
';
echoround(($etime-stime),4) ;//プログラム実行時間



テスト中に、この効率はあまり高くないことがわかりました



要約:
個人的には、PHP の時間指定されたタスクの実行はあまり効率的ではないと感じています。タスクの時間指定の実行はシェルに任せるのが最善の方法です。
追記: 無限ループ手法は、Web サイトに対する悪意のある攻撃でよく使用される手法のようです

QQ截图20111216110444http://www.bkjia.com/PHPjc/324645.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/324645.html

PHP のスケジュールされた実行を実装する 3 つの方法 1. Windows のスケジュールされたタスク 2. Linux スクリプト 3. Web ブラウザーを定期的に更新して、Windows のスケジュールされたタスクを具体的に実装する PHP が Windows サーバー上で実行されることはほとんどありません...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。