簡體   English   中英

使用 Google Cloud PubSub Client Library for php 時,我們如何最大限度地減少超時?

[英]How do we minimise the timeout when using Google Cloud PubSub Client Library for php?

今晚我們從谷歌那里得到了這些例外:

Google\\Cloud\\Core\\Exception\\ServiceException:cURL 錯誤 56:OpenSSL SSL_read:SSL_ERROR_SYSCALL,errno 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 )

我們可以很好地處理異常,但是在連接啟動和異常發生之間存在明顯的超時。 這意味着我們的服務器在向 Google 發起請求時會長時間掛起,等待連接正確創建,失敗,然后繼續。 這意味着我們的請求花費了大量的時間(大約 20 秒 - 大約 3 分鍾)而不是毫秒。

所以:

  • 我們如何確定這個問題的根本原因是什么? 我假設這是與 Google 相關的服務問題,但他們的 Google Console 很清楚
  • 我們如何將超時設置為顯着更短,以便它不會導致長時間延遲,這對於面向用戶的請求尤其重要。

我們正在使用 PHP PubSubClient,特別是目前僅使用publish方法。

我相信這可以通過以下方式解決:

$pubsub->publish(
    [
        'data'       => $data,
        'attributes' => $attributes,
    ],
    [

        'requestTimeout' => 2 // Set your own value here (in seconds)
    ]
);

這似乎被轉化為引擎蓋下的 Guzzle 選項。

查看\\Google\\Cloud\\Core\\RestTrait::send了解更多信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM