Я просто попробую и могу повторить вашу проблему. И вот что вам нужно проверить.
1.В отправителе (на c #) вы должны убедиться, что ваше сообщение отправлено правильно. Как показано ниже:
static void SendingRandomMessages()
{
var eventHubClient = EventHubClient.CreateFromConnectionString(connectionString, eventHubName);
int i = 0;
while (true)
{
try
{
// make sure the message is correct.
var message = i+":"+Guid.NewGuid().ToString()+":"+DateTime.Now;
Console.WriteLine("{0} > Sending message: {1}", DateTime.Now, message);
var myeventdata = new EventData(Encoding.UTF8.GetBytes(message));
eventHubClient.Send(myeventdata);
i++;
//eventHubClient.Send(new EventData(Encoding.UTF8.GetBytes(message)));
}
catch (Exception exception)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("{0} > Exception: {1}", DateTime.Now, exception.Message);
Console.ResetColor();
}
Thread.Sleep(2000);
}
}
2. Кажется, что некоторая задержка для получателя (в python), поэтому я выполняю приемник python примерно 3 раза, и я вижу ожидаемый результат. Снимок экрана, приведенный ниже:
![enter image description here](https://i.stack.imgur.com/bOvUE.png)
Обновление 1022: , как мы уже обсуждали в комментарии, существует решение для исправления только полученияданные события четного / нечетного числа.
В отправителе (в c #) используйте приведенный ниже код, который отправляет данные события в раздел 0:
static void SendingRandomMessages()
{
var eventHubClient = EventHubClient.CreateFromConnectionString(connectionString, eventHubName);
var myclient = eventHubClient.CreatePartitionedSender("0");
int i = 30;
while (true)
{
var message = i + ":" + Guid.NewGuid().ToString() + ":" + DateTime.Now;
Console.WriteLine("{0} > Sending message: {1}", DateTime.Now, message);
var myeventdata = new EventData(Encoding.UTF8.GetBytes(message));
myclient.Send(myeventdata);
i++;
Thread.Sleep(2000);
}
}
, а затем в приемник (в python). ), укажите для раздела значение 0 (используйте PARTITION = "0"
), затем вы сможете получить все данные о событии.