在 PHP 中,我发现如果某个进程或函数未完成,那么包含该函数的整个应用程序就会因此而延迟。
假设有一个搜索函数,它返回大量结果,其中包含 20 多个函数。 “x”函数花费太多时间,因此结果页面会因此而延迟。我的问题是如何修复“X”功能的时间限制,例如 2 秒,如果在该时间内未完成,则应跳过“X”功能。
有什么办法可以做到这一点或更好吗?
最佳答案
所以,如果您正在谈论 file_get_contents
(为什么不立即说出来?),您可以使用流上下文指定超时:
$ctx = stream_context_create(array(
'http' => array(
'timeout' => 10
)
)
);
file_get_contents("http://example.org/", 0, $ctx);
如果使用curl,请使用curl_setopt
作为CURLOPT_TIMEOUT
。
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
这会将超时设置为十秒。
关于php - 如果某个进程或函数没有在固定时间内给出结果,我该如何跳过它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3267361/