max_execution_time only affect the execution time of the script itself.
Any time spent on activity that happens outside the execution of the script
such as system calls using system(), stream operations, database queries, etc.
is not included when determining the maximum time that the script has been running.
This is not true on Windows where the measured time is real.
これは、テストによって確認されます。
タイムアウトしません
<?php
set_time_limit(5);
$sql = mysqli_connect('localhost','root','root','mysql');
$query = "SELECT SLEEP(10) FROM mysql.user;";
$sql->query($query) or die($query.'<br />'.$sql->error);
echo "You got the page";
タイムアウトします
<?php
set_time_limit(5);
while (true) {
// do nothing
}
echo "You got the page";
私たちの問題は、PHPが何をしているかに関係なく、一定の時間が経過した後、PHPを本当にタイムアウトさせたいということです(許容可能な量のページの配信に失敗したことがわかっている場合、リソースをビジー状態に保ちたくないため)時間の、10秒のように)。SQLクエリのMySQLwait_timeoutなどの設定で遊ぶことができることはわかっていますが、ページタイムアウトは、実行されるクエリの数によって異なります。
一部の人々は回避策を考え出そうとしましたが、それは実装可能ではないようです。
Q:Linuxで本物を手に入れる簡単な方法はありますか、それともレベルPHP max_execution_time
など他の場所でタイムアウトする方が良いですか?Apache