接受时间戳以恢复通知的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时间戳,而不是构建应用程序逻辑来保存每一个最后成功处理的消息的令牌?
1条答案
按热度按时间busg9geu1#
resumeAt和resumeAfter都接受BsonTimestamp或令牌。
documentation将它们描述为:
resumeAt -在给定点继续变更流。resumeAfter -在给定点之后继续变更流。
实际上,使用
>
与>=
比较时间戳的差异相同。