2012-01-10 17 views
24

私は、600コール/ 600秒のレート制限をいくつか(たとえばquora)で見てきました。FacebookグラフのAPIレート制限とバッチリクエスト

私が知りたいのは、600 batch要求を600秒で実行することが許可されているかどうかです(バッチ要求は最大50個の要求で構成されています)。

+0

「我々は現在50にバッチリクエストの数を制限します" - [Facebook](https://developers.facebook.com/docs/reference/api/batch/)。 50何? 1分あたりのリクエスト、1日、ユーザー! – Xeoncross

+0

私は同じことを知りたいと思っていました。毎日50回の同時リクエスト、1分あたりのリクエスト、おむつの変更あたりの件数??? –

+2

Hmm ..私はFBを面白くしたいと思っていましたが、ドキュメントを読むことで明らかになりました。「バッチ内のリクエストの数は現在50に制限されていますが、バッチ内の各コールは、 API呼び出し制限とリソース制限たとえば、10個のAPI呼び出しのバッチは10個の呼び出しとしてカウントされ、バッチ内の各呼び出しは同じ方法でCPUリソース制限に寄与します。 –

答えて

11

次のエラーメッセージをチェックすることにより、レート制限をプログラムで処理する必要があります。エラーが発生した場合は、次の呼び出しの前にタイムウェイトループを実行する必要があります。トラフィックの多いアプリケーションのアカウントの1つがこのエラーを監視し、遅くなります。

から:https://developers.facebook.com/docs/bestpractices/

限らレート(API_EC_TOO_MANY_CALLS)アプリケーションがあまりにも多くの呼び出しを行っている場合は、APIサーバは は "API_EC_TOO_MANY_CALLS" エラーを返す、自動的にレート制限することがあります。一般的に、これは ではありません。存在する場合は、アプリケーションが が多すぎるAPI呼び出しを行っていると判断されたためです。あなたのコードを繰り返して、 を必要な数だけ呼び出して、ユーザーエクスペリエンスを維持してください。 が必要です。また、複雑なFQLクエリも避ける必要があります。 を理解するには、アプリケーションが絞られている場合は、Insightsにアクセスし、 「スロットル」をクリックします。

編集

そのバッチ数の各要求は、600のご例えば1.最大限度として、コメントのスレッドでIGYによって報告されているように、それはあなたが15件のバッチリクエストをオフに解雇できることを意味しますそれぞれ50コールを含む。

+8

ベストプラクティスを指摘してくれてありがとう。しかし、私の質問は、バッチ処理された要求と単一の要求の両方が、制限に対して1要求として数えられるかどうかです。 – daremon

+0

Facebookの担当者がどちらが完了したのかわからない場合は、開発者アカウントにフラグが立てられたり取り消されたりして、APIから返されたエラーを監視できないように注意してください。これらのエラーを監視し、発言を行うことがベストプラクティスです。 – DMCS

+0

リンクはもう動作していませんか?私はレート制限を実装する必要があります、私は戻ってどのような応答を得るのですか? –

6

私の経験から、個々のリクエストは、作成された方法(バッチでもなくても)に関係なくカウントされます。

たとえば、それぞれ10件のリクエストを含む1バッチ/秒を実行しようとすると、すぐに「たくさんの通話があります」というメッセージが表示されます。

1バッチ/ 10秒、各バッチで10回のリクエストを行っても、たくさんのコールが表示されることはありません。

私は個人的には、通常のAPI呼び出しよりもバッチを優先する理由はありません。

2

バッチコールは、バッチ内のアイテムごとに必ずカウントされます。 50個の項目を含む1回のバッチコールは、グラフを使用した50回のapi呼び出しに相当します。

5

FBドキュメントによれば、バッチ内の各要素は別々の呼び出しとしてカウントされます。

我々は現在50に バッチであることができる要求の数を制限するが、バッチ内の各呼び出しは、APIコール制限およびリソース制限を計算する 目的のために別々にカウントされます。 の例では、10個のAPI呼び出しのバッチは10個の呼び出しとしてカウントされ、バッチ内の各呼び出し は同じ の方法でCPUリソースの制限に寄与します。より引用

https://developers.facebook.com/docs/reference/api/batch/

しかし私は、経験的な証拠を持っていません。

デビッド

3

私はFacebookのAPIで、今はかなり大きく、痛みを伴う経験を持っていると私はことを述べることができる:バッチ要求は50個の要求が含まれている場合、それはFacebook上で50個の要求としてカウント

  • 1リクエスト!= 1コール。 Facebookは、コールが何であるかという独自の定義を持っています。あなたの要求が大きい場合は、多くのデータを返すか、多くのCPUを消費します。その後、いくつかの呼び出しとしてカウントされます。

私がやっている最も頻繁なグラフAPI呼び出しには、ネストされたフィールドが多く含まれており、200回だけ実行した後に「600コール/ 600秒」に達したことがわかりました。だから、基本的に私の場合は3のために、この呼び出し回数...

あなたは他のレート制限の多くを持っているが、それらのどれも適切に文書化されていません...

関連する問題