一時的でないエラーで短絡リトライポリシーを実行するためのガイダンスは何ですか?一時的ではないエラーが発生した場合のMassTransitバイパスリトライポリシー
シナリオ。
RabbitMqに添付されたMassTransit v3を使用します。 単純なリトライポリシーは、パイプラインで5回セットアップを試行します。 メッセージの消費では、回復不可能なエラーが発生します。例外をスローするのではなく、もう一度4回再試行してください。このメッセージをエラーキューに移動します。
一時的でないエラーで短絡リトライポリシーを実行するためのガイダンスは何ですか?一時的ではないエラーが発生した場合のMassTransitバイパスリトライポリシー
シナリオ。
RabbitMqに添付されたMassTransit v3を使用します。 単純なリトライポリシーは、パイプラインで5回セットアップを試行します。 メッセージの消費では、回復不可能なエラーが発生します。例外をスローするのではなく、もう一度4回再試行してください。このメッセージをエラーキューに移動します。
あなたは使用することができます。
Retry.Except<BadException>().Immediate(5);
クリスからのソリューションが何らかの理由で私のために動作しませんでした。たぶん私は間違った文脈からこの呼びかけをしていたかもしれません。機能したのは、2つのUseRetry呼び出しを行うことだけでした。
configurator.ReceiveEndpoint(host, _config.QueueName, ec =>
{
...
// Configure retries to immediately fail on permanent consumer faults
ec.UseRetry(r => r.None().Handle<ConsumerPermanentFaultException>());
// Configure all other retries as incremental
ec.UseRetry(r =>
{
r.Incremental(_config.RetryCount, _config.RetryInterval, _config.RetryIntervalIncrement)
.Ignore<ConsumerPermanentFaultException>();
});
// Load consumers from the container
ec.LoadFrom(consumerContainer);
});
これはどのように見えますか? VaRのretryPolicy =新しいExponentialRetryPolicy( フィルタ:新しいPolicyExceptPolicyExceptionFilter(typeof演算(SchemaValidationException))、 retryLimit:5、 minInterval:TimeSpan.FromSeconds(1)、 maxInterval:TimeSpan.FromSeconds(30)、 intervalDelta:TimeSpan.FromSeconds( 5)); – Jafin