【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 を再起動したりすると、この記述方法は無効になります。実行を続けるには、コードを再度実行する必要があります。