定期获取第三方数据



我有一个拥有1000万用户的应用程序。该应用程序可以访问用户的谷歌健康数据。我想使用Google API定期读取/刷新用户的数据。

我面临的挑战是memory-intensive task。由于谷歌不为新数据提供任何回调,我将进行后台同步(每30分钟一次(。所有用户都将被挑选并添加到队列中,然后按顺序挑选(取决于工作节点的数量(。

现在,对于每30分钟刷新一次的10M用户,我需要大量的工作节点。

Each user request takes around 1 sec including network calls.
In 30 mins, I can process = 1800 users
To process 10M users, I need 10M/1800 nodes = 5.5K nodes

相当昂贵。货币和运营

然后考虑使用lambdas。然而,lambda需要一个带有互联网网关的NAT才能访问公共互联网。相对来说,它非常便宜。

想知道是否还有其他可能的解决方案吗?

如果不了解更多关于您的体系结构和谷歌API的信息,很难提出建议。

首先,我想看看谷歌是否提供批量导出功能,然后批量处理用户请求。因此,您可以为10万用户发出1个请求,而不是为每个用户发出一个请求。这将减少与连接和处理/解析消息元数据相关的开销。

其次,我想看看是否可以减少处理时间,例如,像python这样的解释语言在很多情况下比C#或GO这样的编译语言慢得多。或者,一个库或算法可以用更优化的东西来代替。

如果没有更多具体设置的细节,很难提供更具体的建议。

相关内容

最新更新