問題タブ [polly]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 最終例外を伴う Polly WaitAndRetry は何もしません
あまり安定していない外部サービスへの呼び出しを実行すると、WebExceptions がスローされます。
数回再試行したいのですが、最後の試行の後、最後に受信したエラーをスローしたいと考えています。
これはPolly (v6.1.1)での私の試みです:
発信者、従来の VB.Net:
上記のコードを実行すると、theResultが null のままになり、サービスが呼び出されないように見えます。Fallback関数を使用せずに WaitAndRetryPolicy を使用すると、サービスが呼び出され、再試行メカニズムが期待どおりに機能します (もちろん例外はスローされません)。
呼び出し元コードでPolicyResult.FinalExceptionをチェックせずに、どうすれば目標を達成できますか?
c# - .NET Core アプリケーションで Polly ポリシーを実行すると、例外がキャッチされた後にハングする
基本的な .NET Core アプリケーションにある Polly の「再試行」コードをテストしようとしています。(継承されたインターフェイスを介して) 非同期メソッドを実装する必要があります。
async
上記のメソッドがキーワードで装飾されていないことに注意してください。わざとそうしました。
このサービスのホスト名を間違った/タイプミスしたサードパーティ サービス (RabbitMQ サーバー) に接続しようとすると、同期コードが試行されて失敗し、例外がスローされます。すごい!しかし、その後、コードがハングするだけですか? コードは再試行し続ける必要があると思いました。
Task.CompletedTask;
したがって、このメソッドで呼び出されるコードがないため、 a を返すだけでよいと思いましたasync/await
。しかし、例外がスローされると、それは処理されます (log.Warning(..)
そこにブレークポイントがある場合は呼び出されます/中断されます) が、その後ハングします。
ここで何が起こっているのかをデバッグするにはどうすればよいですか?
編集
以下の@jeremy-thompsonの返信によると、コードを次のように変更してみるかもしれないと思いました。
したがって、これは次のとおりです。
- 悪いサーバーに接続しようとします
- 失敗し、例外をスローします
- ここで ExecuteAndCapture() を終了します (あと 14 回は返されません...)
- 戻ります
Task.FromException
...
これは少し近づいていますが、まだ 14 回再試行し続けていません。
c# - Polly ポリシーの接続
コードが 429 問題の WebException にヒットしたという事実を知っているのに、ポリシー ハンドルが WebException エラーを処理していない理由を教えてもらえますか? 私はこれをしばらく研究しており、助けが必要です。
これは私のポリー ポリシーです。
私はこのように使用しています:
コードを実行すると、WebException がトリガーされていることがわかりますが、ポリシーは呼び出されていません。助けてください。