使用Google Cloud PubSub Client Library for php时,我们如何最大限度地减少超时



我们今晚从谷歌收到了这些异常:

Google\Cloud\Core\Exception\ServiceException:cURL错误56:OpenSSL SSL_read:SSL_error_SYSCALL,错误号104(请参阅http://curl.haxx.se/libcurl/c/libcurl-errors.html)

Google\Cloud\Core\Exception\ServiceException(代码:0(:cURL错误7:无法连接到oauth2.googleapis.com端口443:连接超时(请参阅http://curl.haxx.se/libcurl/c/libcurl-errors.html)

Google\Cloud\Core\Exception\ServiceException(代码:0(:cURL错误28:操作在2001毫秒后超时,收到0个字节(请参阅http://curl.haxx.se/libcurl/c/libcurl-errors.html)

我们可以很好地处理异常,但在连接启动和异常发生之间有一个显著的超时。这意味着,当向谷歌发起请求时,我们的服务器会挂起很长一段时间,等待正确创建连接,然后失败,然后继续。这意味着我们的请求花费了大量的时间(大约20秒-3分钟(,而不是毫秒。

因此:

  • 我们如何确定这个问题的根本原因是什么?我认为这是一个与谷歌相关的服务问题,但他们的谷歌控制台很清楚
  • 我们如何将超时时间设置得更短,这样就不会导致长时间延迟,尤其是在面向用户的请求中

我们使用的是PHP PubSubClient,特别是目前只使用publish方法。

我相信这可以通过以下方法解决:

$pubsub->publish(
[
'data'       => $data,
'attributes' => $attributes,
],
[
'requestTimeout' => 2 // Set your own value here (in seconds)
]
);

这似乎被翻译成了一个隐藏的Guzzle选项。

有关的更多信息,请参阅GoogleCloudCoreRestTrait::send

相关内容

最新更新