优化wordpress wp-cron计划任务,解决execution timed out问题。

发表时间:2015-04-30 13:56 | 分类:建站经验 | 浏览:2,931 次

根据前面一篇文章“Linux VPS服务器内存不够用的情况”中所述内容修改后,mysql就没有出现定时重启的情况,php进程也没有无故被kill了。不过现在在执行wp-super-cache预缓存任务的时候有时候仍然会提示失败,查看php日志后发现wp-cron进程因为超时被终止。

日志内容类似如下:

php-fpm.log

首先我们看看wp-cron.php是什么?和linux中的cron意思差不多,用于执行wordpress的一些计划任务,比如检查wordpress、主题和插件的更新,定时发布文章,执行插件的一些定时任务等。不过和linux的cron不一样的是wp-cron的触发需要用户点击访问。比如wordpress计划2:00开始任务,但是知道3:00你的博客才有人访问,那么2:00的这个任务就会在3:00才会执行。对于高访问量的网站来说,这个影响可能会比较大。

了解了wp-cron.php的作用后,接下来就需要解决他的超时问题。为了安全考虑,我不推荐修改php-fpm.conf中的request_terminate_timeout参数。如果你把这个只设置成永远不会超时,那么某个php程序可能因为问题永远不会自己结束。

最后,我决定先把wp-cron.php关闭,然后用linux自带的crontab实现。

1、关闭wp_cron功能

在wp-config.php中添加如下代码

define('DISABLE_WP_CRON', true);

2、配置crontab

*/5 * * * * cd /home/wwwroot/blog.nbhao.org;/usr/bin/php -q wp-cron.php

这里一定要先进入网站的根目录,然后执行,因为执行时wp-cron.php加载根目录下的文件。

上面这个php执行的时候以PHP-CLI方式运行,这个模式没有超时限制。

配置好后,我再次查看php日志,暂时没有发现超时信息。当然如果为了优化wordpress,你也可以考虑把wp自带的cron关闭。

参考连接:

https://zhangnq.com/1979.html

https://rtcamp.com/tutorials/wordpress/wp-cron-crontab/

本文标签:

本文链接:https://www.sijitao.net/1985.html

欢迎您在本博客中留下评论,如需转载原创文章请注明出处,谢谢!

已经有3个回复
Comment (3)
Trackbacks (0)
  1. 鲜活  ( 2015.05.3 22:51 ) : #-9

    这个wp-cont很重要呢 :smile: :smile:

    • 章郎虫  ( 2015.05.4 08:27 ) :

      恩,我网上搜了下已知可能会对检查更新、定时发布和一些插件有影响,不过通过linux的crontab手动执行wp-cron应该没问题。

  2. ABC  ( 2015.05.6 10:28 ) : #-8

    过来学习的 :grin:

  1. 还没有Trackbacks
一键脚本 博客历程 留言联系 文章归档 网站地图 谷歌地图
Copyright © 2010-2024 章郎虫博客 All Rights Reserved.