2014-02-24 23 views
0

我有興趣提出一種更好的方法來限制我向外部供應商發出的API調用。簡單和可擴展的方式來跟蹤API整個Rails應用程序的油門限制

例如,假設我每小時允許100個電話。我正在創建一個實用程序,供內部使用。我有一個使API調用的rake任務,我的應用程序本身允許用戶進行api調用等。關鍵是一個賬戶可以在我的應用程序的多個區域進行API調用,儘管我可以訪問這些區域中的每個區域。

所以,我不能在我的耙子任務中說「make api call,sleep 60 seconds」。如果有人使用該應用程序,並且已經在那個小時內完成了100個API調用,該怎麼辦?

有沒有辦法在全球範圍內設置一些東西來輕鬆跟蹤這些調用?

回答

0

Rack throttle跟蹤呼叫數量並提供一些選項來限制對應用程序的訪問。

如果這還不夠,您可以使用快速鍵/值存儲(例如Redis)自行增加計數器。您可以維護兩個不同的鍵,DAILY_LIMITHOURLY_LIMIT。只要每天/每小時重置一次,它就可以減輕每次請求計算任何事情的需要。

相關問題