首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与外部API同步数据库

与外部API同步数据库
EN

Software Engineering用户
提问于 2015-09-29 08:34:29
回答 1查看 2K关注 0票数 2

我目前拥有一个网站,玩家可以在那里查找他们的游戏统计数据。当没有在我的数据库中的人请求他们的统计数据时,我用PHP请求调用cURL,并将它们存储在我的数据库中。

然后,我有一个cronjob,它每分钟运行一次,占用数据库中1/5的玩家,并使用外部API更新数据库中的每个用户(每个请求有20个用户)。

当我的mysql数据库很小(1000/2000用户)时,这种方法很好,但是用户数量增长得非常快,而且很快就会变得更快,所以我需要改变更新用户的方式。

我的cronjob当前调用一个php脚本,该脚本发送cURL请求并使用响应更新数据库。

是否最好每小时更新一次播放器,并将php cronjob更改为python cronjob?当用户请求他们的统计数据时,我可以调用API,但是外部API有时非常慢,或者没有响应,这将不允许我创建图形。

期待着对这件事的一些思考。

EN

回答 1

Software Engineering用户

发布于 2015-09-29 19:46:45

每分钟跑一次

首先,如果需要的话,我会确定。积极地查询API有时会限制您或放弃您的查询。(取决于谁在运行它)。

对于PHP和cURL,这应该很好。我写了一个类似的系统,用这种方式查询200 K字符的统计数据,但我只是每小时用大约500个字符的块来完成,我认为是这样的。

每个请求有20个用户

查找所需的最小数据量,并尝试查询可以查询和使用的最大字符数。如果是20,那么这个数字似乎很低。确保您正在为他们的系统优化地构建查询。有时,依赖于API,而不是查询单个字符或字符组,而是更快地查询所有按id排序的字符(最后一次登录时间>),而不是几个月前的开始(从一开始抵消)和限制。(如果API支持该特性)。这使您能够快速查询大块字符。

如果可能的话,还可以以不同的速率查询不同的数据。通常有很多API数据很少改变。

最后,查找或请求基于WebSocket的API。很多玩实时数据的游戏都在设置它们。这些功能通常类似于消息队列,您可以在其中订阅某些stat更改。

(还有最后一条评论。寻找他们的API讨论论坛。通常,管理它的人会在那里发布,并告诉您他们希望人们使用API的最佳方式。您的用例在许多站点中相当常见)。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/298528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档