2016-04-11 4 views
0

一時的でないエラーで短絡リトライポリシーを実行するためのガイダンスは何ですか?一時的ではないエラーが発生した場合のMassTransitバイパスリトライポリシー

シナリオ。

RabbitMqに添付されたMassTransit v3を使用します。 単純なリトライポリシーは、パイプラインで5回セットアップを試行します。 メッセージの消費では、回復不可能なエラーが発生します。例外をスローするのではなく、もう一度4回再試行してください。このメッセージをエラーキューに移動します。

+0

これはどのように見えますか? VaRのretryPolicy =新しいExponentialRetryPolicy( フィルタ:新しいPolicyExceptPolicyExceptionFilter(typeof演算(SchemaValidationException))、 retryLimit:5、 minInterval:TimeSpan.FromSeconds(1)、 maxInterval:TimeSpan.FromSeconds(30)、 intervalDelta:TimeSpan.FromSeconds( 5)); – Jafin

答えて

2

あなたは使用することができます。

Retry.Except<BadException>().Immediate(5); 
0

クリスからのソリューションが何らかの理由で私のために動作しませんでした。たぶん私は間違った文脈からこの呼びかけをしていたかもしれません。機能したのは、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); 
      }); 
関連する問題