我目前拥有一个网站,玩家可以在那里查找他们的游戏统计数据。当没有在我的数据库中的人请求他们的统计数据时,我用PHP请求调用cURL,并将它们存储在我的数据库中。
然后,我有一个cronjob,它每分钟运行一次,占用数据库中1/5的玩家,并使用外部API更新数据库中的每个用户(每个请求有20个用户)。
当我的mysql数据库很小(1000/2000用户)时,这种方法很好,但是用户数量增长得非常快,而且很快就会变得更快,所以我需要改变更新用户的方式。
我的cronjob当前调用一个php脚本,该脚本发送cURL请求并使用响应更新数据库。
是否最好每小时更新一次播放器,并将php cronjob更改为python cronjob?当用户请求他们的统计数据时,我可以调用API,但是外部API有时非常慢,或者没有响应,这将不允许我创建图形。
期待着对这件事的一些思考。
发布于 2015-09-29 19:46:45
每分钟跑一次
首先,如果需要的话,我会确定。积极地查询API有时会限制您或放弃您的查询。(取决于谁在运行它)。
对于PHP和cURL,这应该很好。我写了一个类似的系统,用这种方式查询200 K字符的统计数据,但我只是每小时用大约500个字符的块来完成,我认为是这样的。
每个请求有20个用户
查找所需的最小数据量,并尝试查询可以查询和使用的最大字符数。如果是20,那么这个数字似乎很低。确保您正在为他们的系统优化地构建查询。有时,依赖于API,而不是查询单个字符或字符组,而是更快地查询所有按id排序的字符(最后一次登录时间>),而不是几个月前的开始(从一开始抵消)和限制。(如果API支持该特性)。这使您能够快速查询大块字符。
如果可能的话,还可以以不同的速率查询不同的数据。通常有很多API数据很少改变。
最后,查找或请求基于WebSocket的API。很多玩实时数据的游戏都在设置它们。这些功能通常类似于消息队列,您可以在其中订阅某些stat更改。
(还有最后一条评论。寻找他们的API讨论论坛。通常,管理它的人会在那里发布,并告诉您他们希望人们使用API的最佳方式。您的用例在许多站点中相当常见)。
https://softwareengineering.stackexchange.com/questions/298528
复制相似问题