Я не профессиональный веб-разработчик, но мне нравится выворачивать на веб-сайтах как хобби. Недавно, я играл с разработкой приложения для направляющих как проект помочь мне изучить платформу. Цель моего игрушечного приложения состоит в том, чтобы получить данные от другого сервиса до их API и сделать это доступным, чтобы я запросил использование поисковой функции.
Однако сервис, из которого я хочу вытянуть данные, налагает ограничение скорости на количество вызовов API, которые могут быть выполнены в минуту. Я планирую на наличии моего выполнения приложения ежедневное обновление, которое может генерировать пакет вызовов API, который далеко превышает предел, обеспеченный внешним сервисом. Я хочу уважать функционирование внешнего сайта и так хотел бы отрегулировать уровень, на котором мое приложение выполняет вызовы.
Я сделал определенный поиск и подавляющую сумму учебного материала и предварительно создал библиотеки, я нашел покрытие, регулирующее входящие вызовы API веб-приложения, и я могу найти мало обсуждения управления потоком исходящих вызовов.
Будучи и веб-разработчиком-любителем и новичком направляющих, совершенно возможно, что я выполнял неправильные поиски в неправильных местах. Поэтому мои вопросы:
Существует ли хороший веб-сайт, там агрегировавший учебные руководства по направляющим, который имеет материал, связанный с регулировкой исходящих запросов API?
Есть ли какие-либо рубиновые драгоценные камни или другие библиотеки, которые помогли бы мне отрегулировать запросы?
У меня есть некоторые идеи того, как я мог бы пойти о записи системы регулировки с помощью основанного на очереди рабочего как DelayedJob или Resque для управления вызовами API, но я скорее проведу свои выходные, создавая остальную часть сайта, если уже будет хорошее предварительно созданное решение там.
Причина, по которой никто не говорит о дросселировании исходящих запросов, заключается в том, что это обычно довольно тривиально, поскольку вы контролируете его. Контролировать пропускную способность может быть немного сложнее, но контролировать количество запросов ?
ri Kernel#sleep
Так, если вам разрешено 10 вызовов api в минуту, вы просто sleep(6) после каждого вызова