カスタムテーマコンポーネントの429エラーを修正

何をしてほしいですか?
カスタムテーマコンポーネント(「Bio Book」)が最近、429 エラーを返すようになりました。これは11月26日に発生しました。それまでは正常に動作していました。

Bio Book は /u ルートをハックして、ユーザー情報をより美しく表示するようにしています。そのために、各ユーザーの .json ファイルから追加のユーザー情報を取得していました。Bio Book は 429 エラーを回避するために遅延読み込みを行っていましたが、4日前にそれが機能しなくなりました。4日前に何が起こったのかはわかりませんが、Discourse チームはレート制限の変更はなかったと確認しています。

コードのレポジトリは以下の通りです:GitHub - sethgodin/discourse_biobook: Bio Book feature for Discourse

元々このコンポーネントを作成してくれた開発者は今回の修正を担当できないため、既存のコードに入ってエラーを解決し、カスタムテーマコンポーネントを再び動作させることができる方を探しています。

新しい機能の追加は不要です。既存の機能の変更も不要です。リファクタリングも望みません。429 エラーを解決し、Bio Book を以前の機能に戻すことだけを求めています。

いつまでに完了してほしいですか?
2020年1月6日月曜日までに完了させてほしいと考えています。

このタスクに対して提示できる予算(米ドル)はいくらですか?
429 エラーの解決に対する予算は250ドルです。

429 エラーを解決すれば、すべての根本的な問題が解決すると理解しています。もしそうではない場合はお知らせください。その場合は予算を調整します。

「いいね!」 1

Discourse はどのようにインストールしましたか?

ユーザーの IP アドレスは正しくログに記録されていますか?

「いいね!」 1

Discourse のビジネスプランでホストされています。

そうだと思いますが、確信はありません。どうすれば確認できますか?

「いいね!」 1

つまり、ユーザー 50 名ずつで遅延読み込みが行われており、max_reqs_per_ip_per_10_seconds のデフォルト値も 50 に設定されています。メインページを含めると、このコードは 10 秒未満で少なくとも 51 回のリクエストを送信することになり、レート制限を超えてしまいます。

言い換えれば、これが以前にどのように機能していたのか理解できません……?

「いいね!」 3

では、正常に動作していますね。残念です。リチャードが説明している問題よりも、設定の問題を修正する方がはるかに簡単だったでしょう。

どちらの仕組みもよくわかりませんが、1年以上は正常に動作していました。4日前までは、429エラーに遭遇したことはありませんでした。

先週、すべての場所のすべての Discourse インスタンスに対して、レート制限をグローバルに有効化しました。来週はプラグインを調査し、代わりに使用できる適切なバッチ API があるかどうかを確認します。

「いいね!」 6

おっと、私もまさに同じ問題に最近ぶつかりました(ユーザー情報を取得してカードを表示する際ですね!)。当面の対応として小さなハックを実装し、 forums にて、私が知らないバッチ API があるのか、あるいはそのようなルートを実装する方法を学ぶために、文字通り訪れました。

「いいね!」 1

@sam ああ、それは本当に参考になります。文脈を教えていただき、ありがとうございます!

「いいね!」 1

申し訳ありません、アレックス。先週私の回答であなたを誤解させてしまいました。あの修正を以前にデプロイしていなかったことに気づいていませんでした。

「いいね!」 4

すべて順調ですね、@HAWK。そう言っていただきありがとうございます。

@sam とチームから、代わりに使える適切なバッチ API があるかどうかの返信をもらうまで、このプロジェクトは保留にします。

皆様、ありがとうございました。

「いいね!」 1

こんにちは、Alex さん、

テーマコンポーネントを確認しました。確かに、膨大な作業量と多数の要件が生まれています。今回実施したレート制限は、免疫系として完全に正しい判断です。

この件は解決しますが、完了まで 1〜2 週間かかる可能性があります。

私の見解では、ここで最も大きな課題は、ディレクトリがユーザーカードが持つすべての情報を返すようにする必要がある点です。難しいのは、テーマコンポーネントにはサーバーを変更する能力がないため、複数のユーザーのユーザーカードを一度に取得できるようにするコア API の変更が必要になることです。

進捗に応じてご連絡いたします。予算について少しだけですが、今回は無料で対応させていただきます。ただし、修正には約 2 日間の作業が必要と見積もっており、当初の予算を大幅に超えています。表面的にはシンプルに見えますが、内部では非常に複雑な変更が必要となります。

「いいね!」 8

@sam さん、そしてチームの皆様、ありがとうございます。これは非常に助かりました。コア API の変更は、私たちだけでなく、他の Discourse ユーザーにとっても役立つことと思います。Bio Book を利用し、より合理的に動作させることができるようになることを嬉しく思います。1〜2 週間というスケジュールで問題ありません。

初期予算と修正の範囲については承知いたしました。これを無料で対応していただけるのは、本当に厚意に感謝いたします。

今後のご連絡をお待ちしております。

「いいね!」 4

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