问题描述
背景:我为我的邮箱调用了 users/{id}/watch
,并且 gmail 成功地将事件分派到我的 Node GCP PubSub 订阅处理程序。我有一个对应于邮箱的 redis 键,并将我的应用程序处理的最新 historyId 存储为它的值。每当我收到一条消息时,我都会使用该键的值(下面日志中的 lastKNownHistory
)来调用 users/{id}/history
,并获取自生成该 historyId 键的事件以来的所有事件。然后我使用 Math.max
操作返回的 historyIds 的 /history
更新 redis 键。 (gmail 开发者文档对此partial synchronization strategy 进行了概述。)
主题处理程序接收一个 historyId 作为其负载的一部分。但是,/history
API 永远不会返回此密钥。作为来自 pubsub 主题的消息的一部分提供的 historyId 是假的,还是对应于真实的邮箱事件?
清理日志:
[email: my-email-address] [message.historyId: 4137307] lastKNownHistory: 4137247
[email: my-email-address] [message.historyId: 4137307] fetched history events [4137250,4137309,4137310,4137311]
在上面的例子中,你可以看到我的 redis historyId 比消息的 historyId 早,但是当我用它来获取时,我没有返回 4137307
作为一个获取的事件。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)