2017-03-29 10 views

答えて

1

Chris Paterson(の所有者)は、あなたの目的に合ったMassTransit特定ツールは存在しないと述べています。 MassTransitが必須でない場合、デッドレターキューにAzure Service Bus SDKを渡すことができます。デッドレターキューは、ピークロック配信とトランザクション処理を完全にサポートしています。デッドレターの詳細については、documentを参照してください。

demo code about dead-letterもgithubから入手できます。次のコードは、デモコードのスニペットです。

var deadletterReceiver = await receiverFactory.CreateMessageReceiverAsync(QueueClient.FormatDeadLetterPath(queueName), ReceiveMode.PeekLock); 
    while (true) 
    { 
     var msg = await deadletterReceiver.ReceiveAsync(TimeSpan.Zero); 
     if (msg != null) 
     { 
      Console.WriteLine("Deadletter message:"); 
      foreach (var prop in msg.Properties) 
      { 
       Console.WriteLine("{0}={1}", prop.Key, prop.Value); 
      } 
      await msg.CompleteAsync(); 
      } 
      else 
      { 
       break; 
      } 
     } 
    } 
0

サービスバスエクスプローラのようなツールを使用して、デッドレターキューからメッセージをキューに戻すことができます。同様に、エラーキュー内のメッセージも移動できます。この目的のために、MassTransit特有のツールはありません。

メッセージが失敗する既知のエラーがある場合は、MassTransitに戻って例外をスローしてエラーキューに移動する代わりに、メッセージを将来の配信にスケジューリングするなどのサービスバスの機能を使用できます。

関連する問題