Discourse APIが429を生成

こんにちは。

フォーラムで面白い返答をするために Discourse API を使おうとしています。例えば、誰かがスレッドで「Linux」と言うと、Discobot が「GNU/Linux のことですか?」と返答するようにしたいのです。

これは機能しますが、誰かが同じフレーズで返信すると、2分間(ほぼ正確に2分間)429エラーや空の応答が大量に発生し、その後 API が通常どおり応答を処理できるようになります。

例:

Linux
FOSS
dotNET
Java
Linux

これは正しく機能します。しかし:

Linux
FOSS
dotNET
Linux
Linux

これは壊れます。

この2分間のウィンドウが何に関連しているか、何か考えはありますか? app.yml の設定を変更したり、API のレート制限を調整したりしましたが、効果はないようです。

ありがとうございます!

詳細情報が必要です。429エラーが発生しているAPIエンドポイントは何ですか?

「いいね!」 1
https://forum.domain.net/t/1000/highestPost.json

それに対するGETリクエスト

highestPost はスレッドの highest_post_number です

これは、レート制限されていることを意味します。新しい投稿を追跡し続けたい場合、そのようなポーリングは非常に非効率的です。Webフックの使用を提案できますか?そうすれば、何も起こっていないときでもポーリングするのではなく、新しい投稿に反応できます。

はい、ウェブフックを調べてみましょう。

レスポンスのレート制限を無効にする方法をご存知ですか?アプリの app.yml でいくつか変更したと思いますが、このリンクの API に関連するものはすべて変更しました。

これは Nginx で探求する必要がある特定の何かですか?

デフォルトで追加されるNginxテンプレートがあります。それはapp.ymlの最初の数行のいずれかになります。レート制限に関するものを削除して再構築すると、それが有効になる場合があります。

「いいね!」 3

w00t。試してみます。ご協力ありがとうございました!

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.