ラッパーを使用して、特定のパーティションを持つAzureSBLite
メッセージをポーリングしています。eventhub
Eventdata は 1 つのイベント ハブに送信され、ストリーム分析はそこから読み取られます。ストリーム分析を処理した後、特定のパーティション内の別のイベント ハブに書き込みます。
SenderEventHub[Partition-1]-->Stream Analytics -->ReciverEventHub[Partition-2]
受信部分は通常60-150s
、受信メソッドを使用していますが、ここではそうではありません。ラッパーの下で何が起こっているのか、どこにあるのかわかりません。の出力を確認しstreamanalytics
ました。ほぼ瞬時ですが、レシーバーは何も取得していません。
受信者コード
ServiceBusConnectionStringBuilder builder = new ServiceBusConnectionStringBuilder(Helper.ConnectionString);
builder.TransportType = TransportType.Amqp;
MessagingFactory MessagingFactory = MessagingFactory.CreateFromConnectionString(Helper.ConnectionString);
EventHubClient client = MessagingFactory.CreateEventHubClient(eventHubEntity as string);
EventHubConsumerGroup group = client.GetConsumerGroup(Helper.ConsumerGroup);
EventHubReceiver receiver = group.CreateReceiver(Helper.PartitionReciever);
do
{
EventData data = receiver.Receive();
if (data != null)
{
Debug.WriteLine(Helper.Currentoffset = data.Offset);
var msg = JsonConvert.DeserializeObject<EventBody>(Encoding.UTF8.GetString(data.GetBytes()));
if (msg != null) Helper.Speak(msg.CommandName);
}
} while (true);
同じ EventHub で試してみましたが、2 つの異なるパーティションの方が悪いです。
注: Azure.SeriveBus は Windows 10 IoT Core ではサポートされていないため、EventProcessorHost を使用できません。