使用大量API调用扩展消息队列

时间:2014-04-23 18:09:59

标签: performance web-services optimization

我有一个应用程序,我的用户的一些操作必须通过第三方API检索。

例如,假设我有一个可以接收大量电话的用户。这个电话记录应该经常更新,因为我的用户想要查看通话记录,所以我应该这几乎是实时的#34;。我设法做到这一点的方法是每10分钟检索一次所有登录用户的列表,并且对于每个用户,我将从最新保存记录的时间戳检索呼叫记录列表的任务排入当前时间戳并保存所有用户那到我的数据库。

这似乎并不能很好地扩展,因为我拥有的用户越多,我拥有的用户就越多,我排队的任务就越多。

有没有其他方法可以达到这个目的?

1 个答案:

答案 0 :(得分:0)

后台作业队列看起来很简单。不太可能所有用户都以相同的速度使用系统,因此根据他们的使用情况对作业进行排队。随着回落到日常。 您可能在某个时候需要更多的工作人员从队列中获取作业,然后是多个队列,因此如果您有 1000 个用户,那么具有较晚队列插槽的用户不会一直等待。 它还取决于您需要多快更新和限制 api 调用。 会有某种限制。因此,建议您首先承诺以 4 小时或 1 小时的延迟进行更新,以始终留出一些时间并努力改进以维持水平。 确保您的用户看到的是您的数据和缓存的 api,而不是实时调用 api 数据,以防它消失。