我正在尝试创建一个简单的负载平衡脚本,我想知道是否有可能找到服务器的响应时间? 我的意思是,可以测量服务器在发出请求后响应的时间吗?
我想要做的是相当简单,我想向链接/服务器发送请求并进行倒计时,如果服务器花了5秒多的时间来回复,我想要落在备份服务器上。
请注意,它不必是在纯PHP中,我不介意使用其他语言,如javascript,C / C ++,asp,但我更喜欢在PHP中使用它。如果有可能完成任务,你能不能指出我正确的方向,以便我可以阅读它。
澄清
我想要做的不是下载文件,看看花了多长时间,我的服务器负载很高,当你点击要下载的文件时,它们需要一段时间才能响应,我想要做的是测量服务器响应所花费的时间(在这种情况下,它是服务器响应并允许用户下载文件所花费的时间),如果花费的时间超过x
秒,它应该会下降回到备份服务器上。
答案 0 :(得分: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
...它会终止,您可以继续执行其他任务。
答案 1 :(得分:0)
与curl类似,您也可以使用HttpRequest
并将timeout
选项设置为5。