Wordpress wp-cron.php循环和重载服务器资源

时间:2011-12-12 22:36:01

标签: php wordpress

我正在开发一个网站,现在似乎有一个wp-cron.php文件的无限循环。我的主机最近限制了我的帐户,因为他们说我的数据库的某个查询每15秒创建1GB的错误日志。我不确定为什么会这样。

我想知道是否有人遇到并成功解决了这个问题。我们在开发服务器上的这个网站上工作没有任何问题,但是现在我们已经转移到我们的生产环境,我们已经遇到了这个问题。我想也许有些文件在转移过程中丢失了,但似乎并非如此。

由于

3 个答案:

答案 0 :(得分:1)

好的所以我找到了一个解决方案,我认为这也有助于让所有人都知道。

基本上,经过大量研究后,我发现每次有人访问该网站时,MailChimp Archives插件显然会触发有问题的顽皮cron作业。无论出于何种原因,它都被抛入一个无限循环,这个循环创建了巨大的日志文件(大约3秒内64MB)。一旦我发现了问题的确切位置,我就做了以下事情:

  1. 禁用插件
  2. 找到一个Wordpress函数,删除调度失控的cron作业的所选钩子(http://codex.wordpress.org/Function_Reference/wp_clear_scheduled_hook)。
  3. 使用该函数删除有问题的钩子,将其插入到我的主题的functions.php文件中,然后重新加载页面。
  4. 我重新加载页面几次后删除了该功能。
  5. 在数据库中找到相应的数据,该数据位于wp_options表中。我刚刚搜索了导致问题的同一个钩子的名称,发现选项值字段中包含9.5MB的文本!显然是大幅减速的原因,因为每当有人访问该页面时,需要加载和解析这9.5MB的文本。我从数据库中完全删除了它。
  6. 一旦完成,我开始注意到大约半小时左右的Wordpress网站性能的逐步提高。我还做了另一个测试,看看日志文件是否在累积,现在它们只在3-4Kb之间波动,这更好。

    我希望这会有所帮助。虽然这似乎是一个相当普遍的问题,但我没有看到很多详细的解决方案,所以让它成为第一个。

    由于

答案 1 :(得分:0)

我认为如果您没有wp_cron.php文件,服务器会进入无限循环,这是一个问题,因为返回错误会再次调用该文件。在这种情况下值得检查。

也可能发生变体 - 您尝试从wp-cron访问文件,但找不到该文件。

即使复制了所有文件,也可能无法正确复制其路径。

答案 2 :(得分:0)

Wordpress 的 cron 作业导致服务器上的 CPU 消耗很高。甚至定义 define ('DISABLE_WP_CRON', 'true');不起作用。在不使用插件的情况下,我发现将其包含在主题的functions.php 中:

OpenForm(new MyForm(), nameof(MyForm));