目前 GAE 并没有 API 可以直接获取随机实体,要实现这样的需求我们只能自己想办法了 :-)
在 stackoverflow 上也有人提过该问题,总结如下:
- Generate and store a random number _disibledevent=>B3log Solo 在处理“随机阅读”上采用的是方法一,即在每个文章实体上添加一个属性保存 0-1 的随机浮点数。
在获取随机文章时生成一个 0-1 的随机数(mid)作为查询条件,以此查询条件作为边界(0 <= mid <=1)来过滤实体保存的随机值属性。
这个方法基本可以达到随机的效果了,为了让随机的效果更动态一点,我们可以考虑经常更新文章实体中的随机浮点值:
加上以上处理后,随机的效果比较好了 :-)
- 访问文章时(即在更新文章浏览次数时一并更新该文章的随机浮点值)
- 后台定时任务(获取一定数量的随机文章然后更新它们的随机浮点值)
- 用户做文章更新时
本文是使用 B3log Solo 从 简约设计の艺术 进行同步发布的延伸阅读
最新评论