我们正在尝试获取用户的最后 N 次更改,目前通过获取最大更改 ID 来实现,然后从中减去一个常数并获得更多更改。
例如,我们通常使用 changestamp = maximumChangeId - 300 进行 API 调用,maxResults 设置为 300。
我们已经看到只有 180 个更改的 6 个更改通过这些参数在我们的用户群中返回。
我们遇到的一个问题是,我们返回的更改数量是相当不可预测的,对于某些用户来说,更改戳记会出现巨大的跳跃,因此我们必须在两个相当不受欢迎的场景之间进行选择才能获得最后的 N 个更改.
请求大量更改,这可能会导致 API 调用缓慢,因为有很多更改。
请求一小组更改,并以较小的批次逐步回溯,这也很慢,因为它会导致多个 RPC 调用,由于多个 API 调用。
我们的目标是尽可能快地为用户获取最后大约 30 次左右的更改。
作为一种解决方法,我们目前在我们的应用程序中维护每个用户的状态,以根据我们上次为用户获得的结果调整我们请求向上或向下的最大更改数。然而,这有点脆弱,因为用户的变化率会随着时间的推移而变化。
所以我的问题如下:
有没有办法有效地获取用户的最后 N 更改,特别是在一个 API 调用中?