Start Debugging

タグ: resilience

6 件

修正: AddStandardResilienceHandler でカスタム DelegatingHandler がリトライのたびに実行されない問題
AddStandardResilienceHandler より前に登録した DelegatingHandler は、リトライごとではなく論理リクエストごとに 1 回しか実行されません。レジリエンスハンドラーの後ろに移動し、リトライが同じ HttpRequestMessage を再送信するため、ハンドラーを冪等にしてください。Microsoft.Extensions.Http.Resilience 10.10.0 と 8.10.0 で計測しています。
StackExchange.Redis 3.3 はサーバーに切断される前に Redis ノードから移動します
StackExchange.Redis 3.3.0 は Redis Enterprise、Redis Cloud、Azure Managed Redis 向けにオプトインのメンテナンス通知 (スマートクライアントハンドオフ) を追加しました。移行中のタイムアウト緩和、トポロジの再読み込み、エンドポイントが消える前の事前移動を行います。有効化の方法と、最初に遭遇する SER010 エラーを解説します。
Polly 8.8 は独自の IOptionsMonitor からレジリエンスパイプラインをリロードできます
Polly 8.8.0 で EnableReloadsWithMonitor が追加され、DI に登録されていない機能フラグやリモート設定のモニターからレジリエンスパイプラインをホットリロードできるようになりました。検証コードで再構築の様子を示すとともに、落とし穴を 1 つ紹介します。context.GetOptions は引き続き DI のモニターを読むため、既定値が返されます。
Aspire が登録する既定のレジリエンスハンドラーを上書きする方法
Aspire の AddServiceDefaults はすべての HttpClient に標準レジリエンスハンドラーを適用します。AddStandardResilienceHandler をもう一度呼んでも置き換えにはならず、2 つ目のハンドラーが積み重なります。実際に上書きする 3 つの方法、どこにも書かれていないオプション名 -standard、そして単に削除しただけで引き継いでしまう無限タイムアウトを解説します。