【发布时间】:2014-12-04 02:50:28
【问题描述】:
这个问题与 WordPress 的 wp-cron 函数有关,但足以适用于任何数据库密集型计算。
我正在创建一个网站主题,该主题需要定期计算系统中所有内容的时间衰减评级。此评级决定了主页上帖子的顺序,该页面被分页以允许访问者潜在地查看所有内容。需要经常计算此评级值,以确保网站有按正确顺序列出的新鲜内容。
评级计算并不繁重,但需要计算可能有 1,000 多个项目的评级,并且通过 wp-cron 每小时执行一次将开始对内容众多的网站造成问题。忽略对页面加载的影响(一旦达到特定间隔,wp-cron 就会处理页面加载请求),在某些时候脚本将达到时间限制。将站点设置为使用“plain ol' cron”将解决页面加载问题,但不能解决超时问题。
假设我无法控制将要运行的网站,那么定期处理此评分计算的最佳方法是什么?想到的几点:
- 仅计算最近 1,000 个帖子的评分,假设其余帖子不会被看到太多。不过,我不喜欢忽略所有旧内容的想法。
- 计算第一个,例如 100 左右,然后仅在加载这些页面时才计算旧组的评分。不过,这可能很难做到正确,并导致不正确的列表和评级(这对于旧内容来说不是一个大问题,但我想避免这种情况)
- 定期批处理 100 次左右,跟踪最后处理的一个。这最终会在整个内容中循环。
还有其他想法吗?提前致谢!
【问题讨论】: