【发布时间】:2013-11-04 18:59:56
【问题描述】:
我在我的 PHP 页面中使用 SoapClient 从第三方收集数据。我已将 max_execution_time 增加到 50 秒,并且已停止在日志中出现这些错误。但是,现在我收到 Service Unavailable 错误,大约 32 秒后日志中没有任何内容。
我已将每个肥皂调用的时间设置为 2 秒到 10 秒,我的脚本每次执行可能会进行 4 或 5 次此类调用。如果我放弃一两个调用,它会在不到 30 秒的时间内执行而不会出错。这让我觉得我的服务器配置中还有其他东西正在断开连接。为了查看它是否是第三方服务器,我保留了相同数量的 API 调用,它们在 30 秒内正确执行,并在每次执行后添加了 sleep(10),它在 31-32 秒时失败。
【问题讨论】:
-
听起来像是远程站点的问题,而不是您的代码。
-
你的 php.ini 中 max_execution_time 的值是多少?如果还没有,请将其设置为 0,或者使用 htaccess 文件进行设置(只需确保允许您的主机覆盖)然后重试。如果问题仍然存在,请检查您正在访问的 Web 服务的日志。 us2.php.net/manual/en/…
-
您可能过于频繁地访问该服务,因此它会返回一个通用的 5xx 错误。如果您可以分享有关第三方实际是谁的详细信息,那可能会有所帮助。您是持续还是间歇性地收到错误?
-
我将 max_execution_time 设置为 0,将 memory_limit 设置为 4gb Ram。它执行得很好但是当我添加一个“sleep(10)”来给它一个延迟时失败 - 用于测试。失败是没有日志的服务不可用。我打 API 的次数相同,但是当它失败时,我添加了睡眠逻辑。我正在添加睡眠逻辑以在流量高时模拟更长的执行时间。
-
我是否有可能达到 PHP 中的其他一些限制,例如最大上传或输入?我认为返回的 XML 不会使用除 max_execution_time 之外的任何其他配置设置。
标签: php ubuntu soap-client