2010-06-19 55 views
0

假设我需要在同一个php函数中多次调用一个web服务,以避免我的页面因为某种原因失败,如果web服务因为某种原因失败了,是否足以在set_time_limit中使用php?最佳做法是什么?在请求webservices时,在php中使用set_time_limit足够了吗?

此外,我刚刚阅读set_time_limit在safe_mode时不工作,那么我应该使用什么?

+1

我相信它不是你无法设置它,但更像你不能改变它,你的脚本默认会在默认的time_limit值内到期。 – Prix 2010-06-19 16:05:53

回答

1

根据您如何调用Web服务,您可以指定超时。

  • 使用http包装器,有timeout包装上下文选项用于连接超时。
  • 如果连接已建立并且您在操作PHP流,则可以使用stream_set_timeout()指定超时。
  • 使用卷曲,有optionsCURLOPT_TIMEOUTCURLOPT_CONNECTTIMEOUT及其毫秒变体。
  • 对于SoapClient,您可以传递construction一个流上下文,但我不知道它的选项(我想它们可能与http包装相同 - 我会在稍后检查一下,然后我会更新答案)。通过代码检查,此流上下文被传递给传输流(tcpssl),因此不能用于设置超时。 SoapClient的超时时间可以设置为changing the property _connection_timeout