3

質問は簡単です。サイト訪問者にカスタマイズされたコンテンツを提供するためにデータベースをチェックしたいのですが、この機能の実行に 800 ミリ秒以上かかる場合はフェイルオーバーして一般的なページを提供したいと考えています。(サーバー応答の目標時間は 1000 ミリ秒です)。

set_time_limit関数を見てきましたが、これは秒単位の整数を引数として取ります。

私の質問: 1 秒未満の値で使用できる同様のものはありますか?

私は次のようなものを探しています:

void set_time_limit_ms ( int $milliseconds )

set_time_limit_ms (800)
4

3 に答える 3

3

存在しません。tick 関数を使用してエミュレートできます。

declare(ticks=1); // or more if 1 takes too much time
$start = microtime(1);
register_tick_function(function () use ($start) {
    (microtime(1) - $start < 0.8) or die();
});
于 2013-07-25T21:51:54.670 に答える
0

はい、私はよくマイクロタイムを使用します。見る

http://php.net/manual/en/function.microtime.php

<?php
$time_start = microtime(true);

// Sleep for a while
usleep(100);

$time_end = microtime(true);
$time = $time_end - $time_start;

echo "Did nothing in $time seconds\n";
?>
于 2013-07-25T21:52:04.223 に答える