2017-06-13 2945 views
3

我在遇到麻煩的壓力測試我與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限制既不指定不同量的請求你被允許執行。

有什麼我可能會失蹤?

+0

_「你應該構建您的系統,這樣你隨着時間的推移分發任何突然的大量負荷,並能控制你的吞吐量你應該打我們的速率限制」 _ - 究竟是什麼問題?您意識到您正在達到極限,因爲API正在返回此錯誤消息...所以現在是時候在您的應用程序中設置$ slowThisShitDown標誌了。 – CBroe

+0

是的,但仍然不盡相同。我提到的標題完全正確,以便您的應用可以根據Facebook用於限制Graph API請求的滑動窗口的當前使用情況自行調整。因此,如果發送API不提供它,您將無法根據實際使用情況很好地分配您的工作負載。 恐怕這個API並沒有使用相同的速率限制概念,但它有一個除「高速率呼叫」以外的值是很好的。 – pjpires

+0

您可以隨時提交文檔錯誤,並要求他們澄清是否有不清楚或遺漏的內容。我不確定發送API是否應該發送這些響應標題,但同意它只是有意義的。所以我會問他們是否應該這樣做,如果不是,那麼文檔應該至少明確地提到這一點。 https://developers.facebook.com/bugs/ – CBroe

回答

0

要回答你的問題,「這應該是在現場應用程序大幅改善?」

不,這種情況下測試應用程序和實時應用程序沒有區別。我的應用程序已經存在,我也遇到了這個錯誤。

我同意,我們的情況下,應該已經下降到「頁面級速率限制」,因爲我們使用的是頁面訪問令牌。但是,我沒有收到與頁面級限制相關的任何錯誤。而我的應用程序儀表板也不顯示API限制命中。所以它只是真正的613 - 自定義級別節流這一切我已經和FB只是說「請合作伙伴經理」

====================== ================================================== =

我已經解決了這個問題。根據FB支持的說法,「由於調用Send API速度過快,您的速率受限制」,我使用setTimeout()將發送API請求的延遲設置爲200ms。以每秒10條消息的速度,我不再達到極限。沒有錯誤613。我會逐漸提高這個速度來找到理想的情景,因爲Facebook不會正式記錄它。將保持你的實驗發佈。

+0

實際上,自從我在Facebook的問題跟蹤器中開啓了一個錯誤以來,最初的帖子是:https://developers.facebook.com/bugs/379288625806177/。從那裏添加的信息不多。然而,我們現在有一些擁有大頁面(大約10M)的現場客戶,而現在只有不到10k的bot用戶,我們能夠發送大約100條消息/秒。所以我會冒險說,參與%也會影響這種自定義級別的限制。 – pjpires

+0

我們的頁面有15百萬個喜歡和90k個訂戶。每秒100條消息達到限制。我知道這是基於頁面從事用戶,我相信我們有很高的數字。 – Carmela