我有一个处理产品项目的 Android 客户端,我想创建一个界面来在任何给定时间显示最流行的程序。
我已阅读并使用 fragment 计数器来实现高度可扩展和并行计数。就计数而言,这一直运作良好。
但是,当需要为单个请求计算前 10 个最受欢迎的产品项目时,问题就开始了,我必须首先获取它们的所有产品实体,获取每个的 fragment 计数器并将它们相加,然后最后对它们进行排序以获得最受欢迎的。
这里的问题是,为了找出最受欢迎的是什么,我必须重新计算所有 fragment 计数器。将其乘以 10000 个产品项,我对单个用户的请求变得非常慢。
我想到了使用 cron 作业来计算结果并将其存储起来的想法。你会推荐我去那条路吗?有没有其他人处理过类似的情况?
谢谢!
最佳答案
按照您的建议定期将计数器聚合成一个只读值,或者使用替代方法来保留高并发计数器,例如 this .
如果您采用前一种方法,您可能希望使用从 cronjob 触发的 mapreduce。
关于java - 实时产品评级的 GAE/J fragment 计数器计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7663973/