我现在在哪里?我已通过office365的REST API订阅了日历通知。当创建/更新/删除该日历中的任何事件时,office365 会将通知发送到我在创建此订阅时分配的应用程序端点。订阅代码就像魅力一样,通知会立即发出。
我真的想让我的代码具有容错能力,但问题来了:如果通知以非增量顺序出现,会发生什么?例如,如果有人首先创建事件然后将其删除。这些通知的顺序可以相反吗? 1. 删除事件,2. 创建事件。我在文档中找不到这个。
我对您如何在代码中处理 SequenceNumber
非常感兴趣。
这就是 documentation说:
SequenceNumber - A number in sequence for a notification, to help the client app identify if it's missing a notification.
好的,很高兴知道我是否错过了通知,但是您能告诉我在这种情况下该怎么办吗?这似乎在任何地方都很难解释。
SequenceNumber
的行为方式例如它们可以按非递增顺序排列吗?- 如果您错过了
SequenceNumber
该怎么办?
通过测试我发现,SequenceNumber
始终按增量顺序排列。但我不确定情况是否总是如此?
更重要的是,如果我的应用错过了 SequenceNumber
该怎么办?我的意思是,如果出现 1、2、3,而下一个是 5 或 6,那么我该怎么办?
另外,我不太确定 ChangeType: Missed
是否与此有关。我对此真的很困惑,所以任何帮助将不胜感激! :)
最佳答案
我测试过它永远不会跳过 SequenceNumber,但好的做法是为每个订阅构建一个通知队列,并按照 SequenceNumber 的顺序一一处理通知。
ChangeType:错过并不能说明什么。它几乎只告诉您哪些订阅错过了通知。通过日历集成,我最终检查了哪个日历对应于该 subscriptionId,然后运行完全同步来验证 Office 中是否有我们错过的任何更改。
关于office365 - 如果应用程序错过通知 - SequenceNumber 跳过一个或多个该怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39320562/