预测下次重试速率限制API之前的延迟

时间:2013-06-09 17:27:01

标签: machine-learning prediction ratelimit

我正在使用一种速率限制我的API,如果我频繁地点击网址,则迫使我等待并重试我的请求。让我们说为了论证,我不知道具体的速率限制阈值是什么(并且即使我知道也不想将其中的一个硬编码到我的应用程序中)。

我可以进行API调用并观察它是否成功,或者回复说我已经受到速率限制的响应,然后很快再次尝试,我可以记录所有尝试之前经过的总时间,然后才能成功完成API调用。

哪些算法非常适合预测在达到速率限制后重试API调用之前需要等待的最短时间?

1 个答案:

答案 0 :(得分:0)

使用像单面二进制搜索这样的东西。

请参阅page 134 of The Algorithm Design Manual

  

现在假设我们有一个数组 A ,包含0的运行,然后是   一个无限的1的运行,并想确定的确切点   他们之间的过渡。二进制搜索阵列将提供   ⌈lgn⌉测试中的转换点,如果我们有一个绑定的 n   数组中的元素数量。在没有这样的约束的情况下,我们可以   以较大的间隔重复测试(A [1],A [2],A [4],A [8],A [16],......)   直到我们找到第一个非零值。现在我们有一个包含的窗口   目标,可以进行二进制搜索。这个单边二进制   搜索最多使用2⌈lg(p)⌉查找转换点 p   比较,无论阵列有多大。片面   每当我们查找密钥时,二进制搜索最有用   可能接近我们现在的位置。