我有一个PHP网站,我使用的其中一个页面对另一个服务器进行CURL调用。现在这个服务器需要大约45秒来响应,而我无能为力。实际上有2步获取信息,第一步是发送更新信息的请求(这需要大约43秒)和在我需要发送另一个请求以获取数据后(通常需要2-5秒)。
我的服务器在GoDaddy上,显然有时会超时(CGI Timeout)因为我认为它通常是30秒。
此脚本(询问请求+获取数据)通常通过cron作业在一夜之间触发,但可以在白天触发。
所以我想知道:什么是拆分信息以避免超时问题的最佳方法?
我在考虑发送更新请求并且不关心结果。然后,大约一分钟后,我会发送请求以获取数据。但是,我不知道是否可以在PHP中执行计时器,如果是这样,页面是否会超时呢?
谢谢!
答案 0 :(得分:0)
答案 1 :(得分:0)
使用CURLOPT_CONNECTTIMEOUT增加服务器响应时间。
CURLOPT_CONNECTTIMEOUT
尝试连接时等待的秒数。使用0无限期等待。
然后你需要使用CURLOPT_TIMEOUT来使用CURLOPT_CONNECTTIMEOUT选项。
像这样,
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,0); // 0 for wait infinitely, not a good practice
curl_setopt($ch, CURLOPT_TIMEOUT, 400); //in seconds
你可以在微秒内设置它,就像这样,
CURLOPT_TIMEOUT_MS