2

Azure Service Bus キューでメッセージを処理するテスト プログラムを作成しています。デキュー機能を開始および停止する機能を提供できるようにしたいと考えています。

QueueClient.Receive(TimeSpan) への呼び出しをキャンセルする方法があるかどうか疑問に思っている場合は? QueueClient.Abort() メソッドと QueueClient.Close() メソッドがありますが、これらに関するドキュメントはまばらです。また、アボートやクローズ後に「開く」に対応するメソッドはないようです。

長時間実行されている受信をキャンセルする方法がない場合、ユーザーがデキューを停止する機会を得るために、短い (またはなしの) TimeSpan を使用することになります。そして、それを行うことで、私はほとんど自分自身でポーリングを行っています。これは、長時間実行される受信機能の利点を無効にします。

私は Service Bus Queue の使用に慣れていないので、ここでのアプローチで間違った方向に進んでいる可能性があり、キュー内のメッセージがどのように処理されるべきかという精神を理解していないのでしょうか?

4

3 に答える 3

1

おそらく、この呼び出しは独自のバックグラウンド スレッドで実行され、スレッド自体を単純に強制終了できます。QueueClientサイドポイント、最初にオブジェクトを閉じる必要があります。

再度受信する準備ができたら、新しいインスタンスを作成し、バックグラウンド スレッドを開始します。

于 2013-06-08T01:51:04.347 に答える
1

設計上の解決策は、実際にはクライアントを閉じることです。

于 2013-06-09T17:07:18.207 に答える