2

遇到非使用人脸api超过速率限制怎么办Task.Delay(1000)
我有大约 50 条记录,并在 2 秒内检测/识别/验证。对于identifyasync,我将置信度阈值设置为 0.0f 并且返回的最大候选数为 50。我尝试使用Task.Delay(1000)并减少了候选数,但这无助于解决我的问题。

请给我有关如何解决此问题的建议,因为我是新手。

4

1 回答 1

1

我写了一个库RateLimiter来处理这种约束。它是可组合的、异步的和可取消的。

看起来 Face API 的配额限制为每秒 10 次调用,所以你可以这样写:

var timeconstraint = TimeLimiter.GetFromMaxCountByInterval(10, TimeSpan.FromSeconds(1));

for(int i=0; i<1000; i++)
{
   await timeconstraint.Perform(DoFaceAPIRequest);
}      

private Task DoFaceAPIRequest()
{
   //send request to Face API
}

它也可以作为nuget 包使用。

于 2018-10-24T16:03:30.860 回答