Próbuję dowiedzieć się, jak korzystać z interfejsu API, który ma limit 5 żądań na sekundę skutecznie, nie osiągając limitu. Jeśli żądanie przekroczy limit, otrzymam odpowiedź błędu z interfejsu API. Thread.Sleep (200) nie wydaje się być właściwym rozwiązaniem, ponieważ potrzebuję wydajności.Jak używać ograniczonego API bez limitu liczby trafień?
foreach (Foo foo in fooList)
{
try
{
// Max 5 API calls per second! How?
ThirdPartyResponse response = ContactThirdPartyApi(foo);
// do something with response
...
}
}
Najchętniej chciałbym skorzystać z usług pracowników w tle, ale jak mogę kontrolować numer żądania na sekundę? Próbowałem już sprawdzić na przykład Hangfire, aby rozwiązać ten problem, ale tak naprawdę nie działa w przypadku tego typu kontroli limitów.
Ponieważ mogę wystosować prośbę i wiem, kiedy otrzymam odpowiedź, powinno być możliwe śledzenie, ile osób zostało zwolnionych, i czy nie ma więcej niż 5 sekund na sekundę. Ale jak? Wszelkie sugestie są mile widziane!
Co powiesz na używanie licznika czasu i licznika całkowitego? – Mephy