遇到非使用人脸api超过速率限制怎么办Task.Delay(1000)
?
我有大约 50 条记录,并在 2 秒内检测/识别/验证。对于identifyasync
,我将置信度阈值设置为 0.0f 并且返回的最大候选数为 50。我尝试使用Task.Delay(1000)
并减少了候选数,但这无助于解决我的问题。
请给我有关如何解决此问题的建议,因为我是新手。
遇到非使用人脸api超过速率限制怎么办Task.Delay(1000)
?
我有大约 50 条记录,并在 2 秒内检测/识别/验证。对于identifyasync
,我将置信度阈值设置为 0.0f 并且返回的最大候选数为 50。我尝试使用Task.Delay(1000)
并减少了候选数,但这无助于解决我的问题。
请给我有关如何解决此问题的建议,因为我是新手。
我写了一个库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 包使用。