如何从Azure EventHub中删除旧邮件?

如何从Azure EventHub中删除旧邮件?,azure,azure-eventhub,Azure,Azure Eventhub,当我们为特定类型订阅EventHub时。 我看到我的员工也在处理旧邮件。 有没有办法摆脱事件中心中较旧的消息,或者手动更改所需消息的分区偏移量值? 到目前为止,当工作程序重新启动时,我们的工作程序不跟踪已处理的消息。检查点未保存,旧消息被重新处理。。。 那么,谁能分享一种解决这个问题的方法呢 提前感谢,, Radha。将EventHub想象为存储在云上的持久事件流。您将需要维护从何处开始读取的光标别无选择。您需要能够做到这一点。大多数消息传递用户会混淆EventHubs中的主题语义。这可以在这个

当我们为特定类型订阅EventHub时。 我看到我的员工也在处理旧邮件。 有没有办法摆脱事件中心中较旧的消息,或者手动更改所需消息的分区偏移量值? 到目前为止,当工作程序重新启动时,我们的工作程序不跟踪已处理的消息。检查点未保存,旧消息被重新处理。。。 那么,谁能分享一种解决这个问题的方法呢

提前感谢,,
Radha。

将EventHub想象为存储在云上的持久事件流。您将需要维护从何处开始读取的光标别无选择。您需要能够做到这一点。大多数消息传递用户会混淆EventHubs中的主题语义。这可以在这个方向上带来清晰


您无法从Azure事件中心删除消息,但我将提供两种选择

  • 您可以缩短邮件保留期。默认情况下,您可以将保留期设置为将邮件保留在1-7天之间。如果它保存的数据比相关数据多,只需将其缩短即可
  • 每个进入Azure事件中心的消息都会附加一个名为“EventEnqueuedUtcTime”的列/属性,该列/属性表示它进入事件中心的时间。让您的程序订阅活动中心。所有事件都将流入,但您可以在IF语句中编程,以仅处理在指定时间后具有EventQueueDutcTime的消息。请记住,此时间是托管命名空间的服务器时间,谁的时钟可能与测量时间不同
  • 将您自己的时间戳附加到消息中,并使用此新属性/列执行步骤2
  • 根据上述第1条,不保证邮件在保留时间到期后被删除。看见