使用WordPress数据库运行繁重脚本的更好方法

时间:2018-04-09 作者:Anton Lukin

我将制作插件,从Google Analytics收集帖子视图。其主要思想是获取每篇文章的视图,并使用post meta存储它们。

问题:
我的博客有很多帖子,而谷歌分析返回数据的速度非常慢。例如,收集所有数据大约需要30分钟。

可能的解决方案:

使用Linux crontab执行/cron.php 我的插件文件夹中的文件。此文件应包含以下内容:require_once(\'/../../../wp-blog-header.php\');

使用wp_schedule_event 函数使用wordpress核心执行繁重查询。

你认为怎样,什么方法更可取,有什么利弊。

2 个回复
SO网友:Greg Much

你有多少帖子可能是因为托管的原因导致了一些延迟?

  • 你想创建自己的插件,从谷歌分析收集数据——我不确定你能做到这一点。

    “主要思想是获取每篇文章的视图,并将其存储在post meta中。”-为什么要在post meta中收集这些内容?如果要收集这些数据,我建议您在数据库中创建自己的表。

    有很多现成的PHP脚本可用于在WP上创建自定义插件。我想这是最快的方式。

    我的一个用于收集统计数据的自定义插件示例(来自整个网站)。

    enter image description here

  • SO网友:T.Todua

    1) 当执行需要超过appx时,您应该忘记在此类方法中使用默认的wp cron。30秒。

    使用默认WP cron方法(wp_schedule_event..) 这是不好的,因为当用户访问您的网站时,您的自定义大型查询可能会开始执行,使他等待数秒,最后离开网站(不等待执行完成),并且cron永远不会完成,这可能会导致其他常规wp计划的cron永远无法执行。为简单的事情保留默认的WP-CRON。

    2) 因此,在这种情况下,您必须使用服务器端cron命令(在LINUX或其他任何版本中)(显然,如果您正在更新许多帖子/帖子元,您会使用纯SQL查询),但我怀疑这是否有帮助,因为我认为服务器不允许您在30分钟左右的时间内运行脚本(除非您有无限权限按照自己的意愿修改内容)。

    3) 我总是说,最重要的忠告是:你做错了什么。不要做错事,而是尝试适应现有的情况——应该有API或其他一些方法来实现您想要的,而不需要手动操作。

    结束