Подтвердить что ты не робот

График API-графика API-графика и пакетные запросы

Я видел ограничение 600 вызовов /600 секунд, указанное некоторыми (например, на quora).

Я хочу знать, разрешено ли мне 600 запросов batch через 600 секунд (пакетный запрос состоит из 50 запросов).

4b9b3361

Ответ 1

Вы должны обрабатывать ограничение скорости программно, проверяя следующее сообщение об ошибке. Затем вы должны положить цикл ожидания до вашего следующего вызова, если вы столкнулись с этой ошибкой. Одна из моих учетных записей с высоким трафиком отслеживает эту ошибку и замедляется.

От: https://developers.facebook.com/docs/bestpractices/

Ограниченная скорость (API_EC_TOO_MANY_CALLS). Если ваше приложение совершает слишком много вызовов, сервер API может автоматически оценивать ограничение, возвращая ошибку "API_EC_TOO_MANY_CALLS". Как правило, это не должно бывает. Если это так, то это потому, что ваше приложение определено чтобы сделать слишком много вызовов API. Идите по своему коду, чтобы вы делали как можно меньше звонков, чтобы поддерживать пользовательский интерфейс необходимо. Вы также должны избегать сложных запросов FQL. Понимать если ваше приложение дросселируется, перейдите к Insights и нажмите "Дросселирования".

изменить

Как сообщается Igy в потоке комментариев, каждый запрос в этой партии считается равным 1. Для вашего примера 600 это максимальный предел, это означает, что вы можете скрыть 15 пакетных запросов, содержащих по 50 вызовов.

Ответ 2

По моему опыту, они учитывают индивидуальные запросы независимо от того, как они были сделаны (в пакетном режиме или нет).

Например, если я пытаюсь сделать 1 пакет/сек, содержащий по 10 запросов каждый, я скоро получаю "Слишком много звонков".

Если я делаю 1 партию /10 секунд, каждая партия содержит 10 запросов, я никогда не вижу СЛИШКОМ МНОГО ЗВОНКОВ.

Я лично не вижу причин, чтобы предпочесть партии по регулярным вызовам API.

Ответ 3

В соответствии с документами FB каждый элемент в пакете считается отдельным вызовом.

В настоящее время мы ограничиваем количество запросов, которые могут быть в партия до 50, но каждый вызов в партии подсчитывается отдельно для в целях расчета лимитов вызовов API и ограничений ресурсов. Для Например, пакет из 10 вызовов API будет считаться 10 вызовами и каждый вызов в пределах партии вносит вклад в ограничения ресурсов ЦП в том же образом.

Цитата из: https://developers.facebook.com/docs/reference/api/batch/

Однако у меня нет эмпирических данных.

Дэвид

Ответ 4

У меня есть довольно большой и болезненный опыт работы с API Facebook, и я могу сказать, что:

  • Если пакетный запрос содержит 50 запросов, тогда он учитывает 50 запросов на Facebook
  • 1 запрос!= 1 вызов. У Facebook есть собственное определение того, что такое звонок. Если ваш запрос большой, верните много данных или потребляйте много CPU, тогда он будет считаться несколькими вызовами.

Самый частый вызов API-интерфейса граф, который я делаю, содержит много вложенных полей, и я заметил, что я достиг "600 вызовов /600 секунд" после выполнения всего 200 раз. Так что в основном этот счетчик подсчитывает 3 в моем случае...

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

Ответ 5

Пакетные вызовы определенно подсчитываются за элемент в пакете. Один пакетный вызов с 50 элементами - это эквивалент 50 вызовов api с использованием графика.