2016-06-13 2 views
0

не Согласно документации: https://www.instagram.com/developer/limits/Instagram скорости ограничение заголовка с не предсказуемое значением

скорости предел контрольных работ под окном «время скольжения», вопрос:

Что частота увеличивается для остальных вызовов HTTP-заголовок (x-ratelimit-остающийся) секунд? минут ?, час?

Чтение документов. «5000/час за токен для Live-приложений» (наше приложение для компании уже появилось Live), я предположил, что ограничитель частоты, рассчитывается каждую секунду или минуту, но через несколько дней, пробовав разные стратегии, значение, похоже, не имеет никакого вычитаемого поведения.

Возможные ответы (в зависимости, как она кодируется) может быть:

(скользящее окно, как частотного ограничителя)

  • это увеличивает 1 кредит каждый 720 мс (3600' (1 час)/5000 (остальные вызовы)) без запроса до достижения 5000, в противном случае он распадается на 0. Если мы сделаем 1 запрос. на правильной частоте мы никогда не должны терять 5000 звонков. Таким образом, мы могли бы потратить их стратегически: рассеянный, загроможденный, адаптированный к трафику.

(ограниченная раковина зарядкой каждый час)

  • с 5000 остальных, он распадается 1 кредит по запросу -не имеет значения частотно- после 1 часа прошло с тех пор, что 1-го запроса: он возвращается до 5000

  • он обновляет до 5000 каждый 1-часовой подсчет, так как токен использовался для 1-го запроса.

  • он распадается 1 кредит на каждый запрос, и он идет до 5000 в фиксированный час времени, как в 12:00, 13:00, 14:00, 15:00 ...

Я использую jInstagram 1.1.7.

ответ

0

После многих испытаний .... У меня есть некоторые временные выводы ...

Начиная с 5000, если вы запрашиваете на равномерной скорости (720ms/REQ) вы достигнете 500, как в минуте 50 , тогда instagram начнет давать вам кредит по частям менее 500. Таким образом, в минуту 60 вы оставите 150 оставшихся вызовов, а instagram предоставит вам еще одну кредитную часть, обычно достигая 500 авг. и, конечно же, спуститься, конечно ...

Если вы перестанете потреблять, например, 30 минут aprox. Вы снова получите 5000 кредитов.

Также они дают вам 5000 оставшихся вызовов, они, похоже, имеют счетчики, индексированные по IP, если вы делаете запрос с разных IP-адресов с одинаковыми учетными данными, они будут действовать как игнорирование других.

Кроме того, у instagram есть много ошибок, сохраняющих согласованное значение для HTTP-заголовка, остающегося в x-ratelimit, который они отвечают на каждый HTTP-запрос. Это похоже на некоторые переопределения и некоторую гонку между серверами, воспроизводящими последнее значение.

Позор на вас instagram, я потратил много времени, адаптируя свой классный алгоритм дросселирования к вашему неправильному поведению, предполагая, что у вас там хорошая техника!

Пожалуйста, исправьте их, чтобы мы могли играть честно с вами, вместо того чтобы играть в прятки, хитрости.

Смежные вопросы