1

いつものように、私は現在立ち往生しているので、助けていただければ幸いです!!!

新しいプロジェクトがあり、Azure EventHub を使用します。イベント ハブにイベントを追加したり、IEventProcessor(Receiver プロジェクト) を使用してイベントを消費したりできるデモ アプリを作成しました。問題は、レシーバー プロジェクトを実行するたびに、同じイベントが表示されるということです。これらのイベントは、消費後に削除されると期待すべきではありませんか?

Receiver プロジェクトでの例:

foreach (EventData eventData in messages)
{
        string data = Encoding.UTF8.GetString(eventData.GetBytes());

        Console.WriteLine(string.Format("Message received.  Partition: '{0}', Data: '{1}'",
                context.Lease.PartitionId, data));
}

Console.WriteLine の後にイベントを削除/削除する方法はありますか、またはメッセージは 1 日保持されますか? Queues を使用すると、完了を知らせることができますが、EventHub を使用するとコマンドが表示されないため、削除/削除するために使用できます。

どんな返信でも大歓迎です。EventHub を使用するように指示されましたが、理由はありません。選択の問題ではありません。

4

5 に答える 5

5

ProcessEventsAsync を終了する前に、必ず context.CheckpointAsync を呼び出してください。これにより、パーティションのクライアント オフセットが格納され、そのパーティションが割り当てられる次のプロセッサ インスタンスは、最後に格納されたオフセットから再開されます。

ドキュメントについては、 http://msdn.microsoft.com/en-us/library/dn751578.aspxを参照してください(ただし、多くの情報はありません)。

于 2014-11-20T17:52:01.363 に答える
1

チェックポイントを使用して、パーティションのオフセットを保存する必要があります。私の知る限り、イベントハブからイベントを削除する方法はありません。イベントの保存期間が過ぎると、イベントハブから自動的に削除されます。しかし、保持期間が終了したメッセージが届くことも確認しています。

https://social.msdn.microsoft.com/Forums/windows/en-US/93b1bf18-2229-4da8-994f-ddc7c675f62f/message-retention-day-not-working?forum=servbus

したがって、容量割り当てに達すると自動的に削除されるか、スケジュールされたタスクのようになると思いますが、よくわかりません.

于 2015-02-11T18:47:57.623 に答える
0

他のすべての回答に加えて、もう 1 つ紛らわしい点があります。EventHub は、最大 30 日間の保持期間を過ぎたメッセージを削除しない場合があります。ハブにかかる負荷によって異なります。

たとえば、保持期間は 1 日ですが、メッセージが少ない場合は、より長い期間保持できます。

幸いなことに、彼らは請求されません。

于 2016-05-28T15:20:44.010 に答える
0

Azure Event Hub のイベントは、定義された保持期間バッファリングされた後に削除されます。保持日数は 1 ~ 7 日間で設定できます。手動で削除する必要はありません。

于 2015-09-17T19:37:55.440 に答える