ホームページ > バックエンド開発 > PHPチュートリアル > 【100点】PHPデーモンがすべてのプロセスを「スタック」させた?何をするか

【100点】PHPデーモンがすべてのプロセスを「スタック」させた?何をするか

WBOY
リリース: 2016-06-13 13:29:55
オリジナル
929 人が閲覧しました

【100点】PHPデーモンがすべてのプロセスを「スタック」させた?
私は初心者なので、デーモン プロセスを作成する必要があります。情報を確認しました ~ テストするために 2 行を書いただけです

//ユーザーの切断を無視します
ignore_user_abort(true);
//タイムアウトを無視します
set_time_limit(0);
while( true)
{
$logContent = date('Y-m-d H:i:s')."rn";
file_put_contents('log.txt', $logContent, FILE_APPEND);

sleep(10);
}


これは、現在の時刻を 10 秒ごとにログ ファイルに書き込みます。しかし、これが実行されるとすぐに、Apache 全体が応答しないことがわかります。たとえば、これを a.php に記述した場合、b.php などの他のファイルはすべて役に立ちません。 Apache が止まっているようです。何が起こっているのか知りたいですか?



-----解決策---------
コードのこれらの数行だけでは、前述の現象は発生しません。
------解決策------------------
#vi log.php
$logContent = date('Y-m-d H:i:s')."rn";
file_put_contents('log.txt', $logContent, FILE_APPEND);
?>

#crontab -e

*/10 * * * * /usr/local/php/bin/php log.php

-- -------------------------------------------------- ---

php ファイルへの絶対パスを書き込みます
------解決策------------------
windows

>notepad log.bat

#{your-php-bin-path}php log.php

>schtasks /create /sc minutes /mo 10 /tn "php-date-log" /tr log.bat
------解決策------------------
サーバーは 1 つのプロセスを制限します。
ブラウザを変更してください。Firefox で開くか、Google で開きます。b
IE コアを搭載したブラウザは使用しないでください。 。 。
------解決策------------------
この問題が起こらないのは当然です。時間を長めに変更してみてください。
また、PHP のスケジュール実行を実装したい場合は、Windows ではスケジュールされたタスクを使用し、Linux では cron を使用することは推奨されません。また、コンピュータを再起動したり、Apache を再起動したりすると、この記述方法は無効になります。実行を続けるには、コードを再度実行する必要があります。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート