0

簡単な負荷分散スクリプトを作成しようとしていますが、サーバーの応答時間をライブで見つけることができるかどうか疑問に思っていましたか? つまり、リクエストが送信されてからサーバーが応答するまでにかかる時間を測定することは可能ですか?

私がやろうとしていることはかなり単純です。リンク/サーバーにリクエストを送信してカウントダウンを行いたいのですが、サーバーが応答するのに5秒以上かかった場合は、バックアップサーバーに落ちたいと思います。

純粋な php である必要はないことに注意してください。javascript、C/C++、asp などの他の言語を使用しても構いませんが、PHP で行うことを好みます。タスクを実行できる場合は、正しい方向に向けていただければ、それを読むことができます.

明確化

私がやりたいのは、ファイルをダウンロードして所要時間を確認することではありません。サーバーの負荷が高く、ファイルをクリックしてダウンロードしたときに応答するまでに時間がかかります。サーバーが応答するのにかかる時間 (この状況では、サーバーが応答してユーザーがファイルをダウンロードできるようになるまでの時間) であり、数x秒以上かかる場合は、バックアップ サーバーにフォールバックする必要があります。

4

2 に答える 2

5

curl_getinfoを確認する必要があると思います。次のものが返されますが、これは必要以上のものです

url
content_type
http_code
header_size
request_size
filetime
ssl_verify_result
redirect_count
total_time  <------------------ what you need
namelookup_time
connect_time
pretransfer_time
size_upload
size_download
speed_download <------- Speed 
speed_upload
download_content_length
upload_content_length
starttransfer_time
redirect_time  <------ Can cause increase in time 
certinfo


あなたの編集: if it takes longer than x seconds, it should fall back on a

解決策:必要なのは...に設定CURLOPT_CONNECTTIMEOUTするx secondsだけで終了し、他のタスクに進むことができます。

于 2012-10-20T22:27:33.197 に答える
0

curl と同様に、オプションを 5HttpRequestに設定して使用することもできます。timeout

于 2012-10-20T22:54:04.207 に答える