Делать заданное количество запросов в час в Ruby? - PullRequest
0 голосов
/ 28 июня 2018

Мы используем API, который накладывает ограничение скорости в час.

Интересно, что будет лучшим способом сделать определенное количество запросов в час к API для наших собственных сценариев. Т.е .: Делать 10 запросов в час, чтобы не превышать наши надбавки и избегать завышений.

Я думал просто использовать sleep(60*6) в моем цикле, но вызовы API могут занимать минуты, поэтому он может выполнять намного меньше запросов, чем разрешено.

Как лучше распределять наши запросы?

Edit:

Я закончил делать что-то вроде этого, что вы, ребята, думаете?

while(queue.size > 0) do
  Thread.new {
    element = queue.pop
    # do the rate limited API calls and things 
  }
  sleep(60*6)
end

1 Ответ

0 голосов
/ 28 июня 2018

рассмотреть атаку стойки промежуточное ПО

Подводя итог - вы сохраняете где-то (в памяти, в базе данных, как redis) количество запросов, выполненных конкретным клиентом (известно по IP, идентификатору или в любой другой форме) в течение заданного времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...