この操作をあまりにも多く行ったエラー

このエラーはたびたび発生します。

{"errors":["この操作を多すぎます。数秒待ってからもう一度お試しください。"],"error_type":"rate_limit","extras":{"wait_seconds":0}}

このエラーを解消する方法を教えてください。ご提案をお願いします。

「いいね!」 1

設定 > レート制限を確認してください。値はお好みに変更してください

こんにちは @IAmGav さん、

以下の設定を行いました:

  1. トピック作成のレート制限 = 0(トピックを作成した後、ユーザーは次のトピックを作成するまで (n) 秒待たなければなりません。)
  2. 投稿のレート制限 = 0(投稿した後、ユーザーは次の投稿を行うまで (n) 秒待たなければなりません。)
  3. 新規ユーザーのトピック作成のレート制限 = 0(トピックを作成した後、新規ユーザーは次のトピックを作成するまで (n) 秒待たなければなりません。)
  4. 新規ユーザーの投稿のレート制限 = 0(投稿した後、新規ユーザーは次の投稿を行うまで (n) 秒待たなければなりません。)

しかし、エラーは依然として発生し続けています。他に確認すべき制限はありますか?

「いいね!」 1

Available settings for global rate limits and throttling に記載されているすべての設定を無効にしました。
しかし、それでも「このアクションを多すぎます」というエラーが表示されます。
他に何か行うべきことはありますか?

具体的にどのような操作をするとこのエラーが発生するのでしょうか?

Topicsの作成をAPIで行おうとしています。APIを通じて約100個のTopicsを作成しようとしたところ、このエラーが発生しました。
また、Topicsへのタグ更新もAPIで行おうとしています。フォーラムにはタグが付けられていないTopicsが数百件存在するため、APIを通じてそれらにタグを更新しています。

では、以下の値は何ですか?

DISCOURSE_MAX_USER_API_REQS_PER_MINUTE
DISCOURSE_MAX_USER_API_REQS_PER_DAY
DISCOURSE_MAX_ADMIN_API_REQS_PER_KEY_PER_MINUTE

そして、それらの数値を超えていないことを本当に確信していますか?

「いいね!」 2

こんにちは :wave:
私も同様の問題に直面していますが、読み取りアクションで発生しています。

Discourse と連携するインテグレーションを構築しており、API を使用して多くの投稿を読み取っています。書き込み操作は一切行わず、読み取りのみです。最新の投稿を取得するために、以下の手順を実行しています。

  1. /latest.json エンドポイントを使用して最新のトピックを取得します。
  2. /t/:id を介してすべてのトピックを順番に取得し、投稿のストリームを取得してページネーションできるようにします。
  3. そのトピックに 20 件を超える投稿がある場合は、「stream」から ID を取得し、サイズ 20 のチャンクで順番に取得します。

また、すべてのリクエストをキューに入れ、10 秒あたり約 25 件を超えるリクエストを送信しないようにしていますが、それでもトピックまたは投稿の読み取りリクエストで「このアクションを何度も実行しました」というエラーが頻繁に表示されます。Discourse の設定を確認しましたが、読み取りに関する制限は見つかりませんでした。「トピックの作成」やその他の書き込み操作に関する制限のみ確認できます。

これについて何かできることはありますか?どんなヒントでもありがとうございます。古いトピックを持ち出してすみません。

「いいね!」 1

Looks like I’m hitting the max_admin_api_reqs_per_minute limit. Can it be customized? Can’t see it in Settings > Rate limits

EDIT: actually looks like two limits kick in there. admin_api_key_rate_limit and ip_10_secs_limit

「いいね!」 1

?print=true を追加すると、読み込み時の API 呼び出し回数を減らすのに役立つかどうか興味があります。

これにより、1 回の API 呼び出しで 1000 件の投稿を取得できるようになります。

?print にはさらに厳しいレート制限があると思っていました。

しかし、?print=true の使用ではなく、他の何かが原因のようです。必ず試してみます。

しかし、理解したところによると、これは 20 件以上の投稿があるトピックにしか役立たないようです。私たちのトピックのほとんどはそれより少ないと思うので、実際のボトルネックはトピックへのリクエストが多すぎることです。

「いいね!」 1

はい、それはユーザーを制限するためです。管理者のAPIキーがあれば、その設定はあなたには影響しません。

ああ、はい、その可能性が非常に高いですね。

429エラーをチェックして指定された量だけ遅くする以外にも、いくつかの選択肢があります。

まず、データエクスプローラープラグインを使用して、探しているすべてのトピックを取得するクエリを記述することをお勧めします。最大1000件の結果が返されると思います。その後、APIを使用してクエリを呼び出し、応答を取得できます。

ユースケースによっては、Webhooksも役立つ場合があります。新しいトピックや投稿ごとに設定し、最新のコンテンツをすべてリッスンするだけです。

それでもAPIレート制限を引き上げる必要があると判断した場合は、エンタープライズプランをご利用のサイトでのみ対応可能です。共有のプロ/ビジネスホスティングには適用されません。

Discourse のデータエクスプローラープラグインを使用する際の問題は、Discourse の統合機能のユーザーが私たちだけではないことです。私たち (fibery.io) は、お客様が Discourse インスタンスを統合できるようにしており、それによってデータを私たちのツールにシームレスに同期させることができます。

Webhook は良い追加機能ですが、最初の同期 (例えば、先月分のトピックや投稿など、最も負荷の高い同期) の際には役立ちません。その後は新しいデータの定期的な同期を行いますが、それは問題になりません。

429 をチェックして再試行することはうまくいきますが、時には遅くなることがあります。

ご検討いただきありがとうございます :bow:

「いいね!」 1