私はAzure Service Bus Queueからメッセージを取得中に自分自身を呼び出す簡単な再帰的な方法を持っています。このメソッドは、メッセージをメッセージのリストに追加し、キューにメッセージがなくなると、処理する親メソッドにリストを返します。手動で再帰の深さを制限しますか?
通常の状況では、すべてが正常に実行されていると、到着したときと同じくらい速くキューからメッセージを引き出しているため、キューに複数のメッセージが存在することはありません。しかし理論的には、プロセッサーがダウンすると、メッセージが急に積み重なり、メッセージの数が膨大になる可能性があります。
正常に処理を中止して処理するメッセージのバッチを返送する前に、キューから取り出してリストに入れるメッセージの個数に人為的な制限を設けたいもう一度行く。しかし、私はこれを行うための最善の方法は不明です。私は整数を作成して各呼び出しに追加し、値をチェックしてから、ある点に達したときに処理を中止することができます。しかし、良い方法がありますか?
整数をインクリメントするより簡単なことはありません... –
ok。ちょうど私が踏み込むことができる再帰の深さを数えたC#.NET属性で造られたあいまいなものがあるかどうかは不思議でした。 –
再帰はタスクに適切ですか? –