ユーザーがシステムで検索するたびに外部システムに要求を送信する必要があるシステムがあります。クライアント・サーバー・システムのバックオフ・メカニズムのパターン
外部システムがダウンしている、または異常に長い時間がかかっている場合は、しばらくの間、システムを「バックオフ」したいと思います。外部システムへの要求を増やそうとするのではなく、私のシステムのユーザーがすぐに要求を処理しないようにするだけです。
これにより、ユーザーにとってより良いエクスペリエンス(タイムアウトを待つ必要はありません)、システムでのリソース使用率が低下します(スレッドは外部システムからの応答やタイムアウトを待つことなくビジー状態になります)。それは外部システムを救うだろう。 (既に負荷がかかっている状況で)
しばらくして、またはシステムが外部システムが再び応答していることがわかったときに、再び正常な動作を再開したいと思います。
このようなことを行うためのパターンや標準的な方法はありますか?具体的には、タイムアウト/ロング要求を追跡するためのメカニズム、および再試行を開始するときのための制御メカニズムです。