我有一个Azure函数,用于侦听事件中心中的消息。该功能从事件中心获取消息,对其进行处理,然后将其传递给另一个中心。此时,消息已从事件中心中删除。
如果函数由于某种原因而无法处理消息,是否可以告诉事件中心不要删除消息,并尝试在将来某个时候再次将其传递给函数?
我了解活动中心的最长保留期为7天。我希望事件中心和功能在此期间可以继续尝试。
答案 0 :(得分:0)
阅读者从不从事件中心“删除”消息。它们与服务总线主题和队列在这方面是不同的。
事件中心依赖于客户端为每个分区维护自己的书签。高级API EventProcessorHost为您完成此操作:
EventProcessorHost类还实现了基于Azure存储的 检查点机制。该机制将偏移量存储在每个 分区基础,以便每个消费者可以确定最后一个 前一个消费者的检查站是。
但是较低级别的EventHubReceiver公开了StartingSequenceNumber属性,供您显式控制。
但是,对于保证传递的强烈要求强烈表明您可能希望将需要保证传递的消息从事件中心复制到Service Bus Topic or Queue或Azure SQL数据库表中进行处理。