我在遇到麻煩的壓力測試我與Messenger平臺應用程序發送相同的消息給多個用戶在一個小的時間內。我得到一個限制錯誤:(#613) Calls to this api have exceeded the rate limit.
Messenger平臺限制錯誤(#613)調用這個API已經超過了限速
目前我通過幾次發送相同的消息給同一個用戶(我)測試此;在現實世界的場景中,相同的消息當然會發送給幾個不同的用戶。
此外,我正在使用一個實時應用程序的測試應用程序來執行這些測試。這應該是在現場應用程序大幅改善?
我真的需要一個很好的吞吐量廣播消息,所以目前我的設置有多個線程產卵(50)並行發送郵件,他們中的一些已經觸及這一限制和錯誤的。 另外,我嘗試了批量請求以提高交付流程的速度,並且在那一點上,它確實變得無法忍受,成功率低於50%。
我已經閱讀了關於一般圖形API速率限制(https://developers.facebook.com/docs/graph-api/advanced/rate-limiting),併發送消息提供頁面訪問令牌,所以我希望我的應用程序屬於「頁面級別限制速度」類別,如果我發送的消息太多了。但是,在錯誤響應中沒有X-Page-Usage標頭(順便說一句,X-App-Usage都沒有)。
在信使平臺文檔(https://developers.facebook.com/docs/messenger-platform/send-api-reference#limits)以下陳述:
Messenger Platform supports a high rate of calls to the Send API.
However, you should architect your system such that you distribute any sudden high amounts of load over time and are able to control your throughput should you hit our rate limits.
Rate limits are in place to prevent malicious behavior and poor user experiences.
Be sure to catch any errors returned by the Send API including the one indicating that you've reached the rate limit.
這些都不是特別有幫助的任一,因爲它們不明確提及的一般圖形API限制既不指定不同量的請求你被允許執行。
有什麼我可能會失蹤?
_「你應該構建您的系統,這樣你隨着時間的推移分發任何突然的大量負荷,並能控制你的吞吐量你應該打我們的速率限制」 _ - 究竟是什麼問題?您意識到您正在達到極限,因爲API正在返回此錯誤消息...所以現在是時候在您的應用程序中設置$ slowThisShitDown標誌了。 – CBroe
是的,但仍然不盡相同。我提到的標題完全正確,以便您的應用可以根據Facebook用於限制Graph API請求的滑動窗口的當前使用情況自行調整。因此,如果發送API不提供它,您將無法根據實際使用情況很好地分配您的工作負載。 恐怕這個API並沒有使用相同的速率限制概念,但它有一個除「高速率呼叫」以外的值是很好的。 – pjpires
您可以隨時提交文檔錯誤,並要求他們澄清是否有不清楚或遺漏的內容。我不確定發送API是否應該發送這些響應標題,但同意它只是有意義的。所以我會問他們是否應該這樣做,如果不是,那麼文檔應該至少明確地提到這一點。 https://developers.facebook.com/bugs/ – CBroe