c# - 如何在接收器事件中心编辑 EvenData 消息?

标签 c# azure azure-eventhub

我是一个初学者,我有一个问题。我无法替换接收者事件中心中的单个消息。有谁知道如何解决这个问题?

 public Task ProcessEventsAsync(PartitionContext context, IEnumerable<EventData> messages)
    {


            try
        {
            foreach (EventData message in messages)
            {
                    string data = Encoding.UTF8.GetString(message.GetBytes());
                    NewClient Client = JsonConvert.DeserializeObject<NewClient>(data);
                    GPSApi Gpsobject = new GPSApi();
                    Gpsobject.GetJson(Client.City, Client.Street);
                    Gpsobject.DeserializeJson();
                    Gpsobject.ConvertJson();
                    WeatherApi WeatherApiobject = new WeatherApi();
                    WeatherApiobject.GetJson(Gpsobject.convertlat, Gpsobject.convertlng);
                    data = WeatherApiobject.sendEvent;
                    EventData data1 = new EventData(Encoding.UTF8.GetBytes(data));
                    //message = data1;
                // LUB TUTAJ                    
                Interlocked.Increment(ref this.totalMessages);
                this.LastMessageOffset = data1.Offset;
            }

我尝试过循环。例如

(int i=0; i<messages.Count(); i++)

也不起作用。

最佳答案

I would after receiving customer data in the message, then download it to the weather, and replace the message of the weather, which continue to be sent to the stream analytics.

我认为这是不可能的。您正在使用 EventProcessor 处理消息。这就是事件流的末尾。从这里,您可以对数据执行某些操作,例如保留数据或其他任何操作,但您无法更改/覆盖事件,然后以某种方式神奇地将它们放回同一事件中心流中。

这几乎是不可能实现的,因为当多个消费者使用不同的消费者组读取流时,你该如何处理,以及如果这些消费者位于流中的其他位置该怎么办?

不过你有一些选择:

  1. Task ProcessEventsAsync(PartitionContext context, IEnumerable<EventData> messages)像现在一样循环所有消息并将它们发送到另一个事件中心,然后该事件中心又连接到流分析作业。
  2. 使用Task ProcessEventsAsync(PartitionContext context, IEnumerable<EventData> messages)像现在一样循环所有消息,获取天气数据并将其存储到 Azure Blob 存储。

如果您探索选项 2,您可以将 blob 容器作为输入连接到流分析作业。

关于c# - 如何在接收器事件中心编辑 EvenData 消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39905849/

相关文章:

c# - C# 中的高性能乘法/求值

c# - WCF 服务 - 无法调用服务

python - 如何逐行读取 azure 的 Blob ?

azure - Slack 消息不会到达 Azure

azure - 创建 Azure 虚拟桌面 session 主机后,但用户无法访问远程桌面

azure - Azure 服务 Eventhub 允许多少连接。

Azure 事件中心 SAS token 不会过期

c# - File.ReadAllText 线程安全吗?

c# - 如何根据另一个控件调整控件的大小? (WPF)

c# - EventHub PartitionContext 类设计