MongoDB:变更流中resumeAt和resumeToken之间的差异

mmvthczy  于 2023-02-11  发布在  Go
关注(0)|答案(1)|浏览(207)

接受时间戳以恢复通知的resumeAt的行为与接受恢复令牌的resumeToken的行为有什么区别?

return ChangeStreamOptions.builder()
                    .filter(Aggregation.newAggregation(Example.class, matchOperationType))
                    .resumeAt(Instant.ofEpochSecond(1675303335)) // this is simply a unix timestamp
                    .resumeToken(tokenDoc) // resume token saved from previous notification
                    .returnFullDocumentOnUpdate().build();

如果应用程序崩溃/重新启动将是理想的/简单的,只是传入一个合理的过去时间(从几个小时到几天)的unix时间戳,而不是构建应用程序逻辑来保存每一个最后成功处理的消息的令牌?

busg9geu

busg9geu1#

resumeAt和resumeAfter都接受BsonTimestamp或令牌。
documentation将它们描述为:
resumeAt -在给定点继续变更流。resumeAfter -在给定点之后继续变更流。
实际上,使用>>=比较时间戳的差异相同。

相关问题