WordPress 搭建的博客,平时有很多定时任务需要处理,比如博客程序、主题、插件,我可以设置成自动更新,还有很多插件自带需要定时执行的任务,比如,定时备份、定时扫描文件、定时删除缓存等等。
原生 WP-Cron处理定时任务是需要访客浏览网页触发wp-cron.php文件,执行时间不确定,每次访客浏览网页的同时,系统也会去wp_options 表里的 cron 那一行查询,是否有到期需要执行的任务,有就执行,没有就算了。
如果网站浏览量大的话,对数据库来说是个很大的负担。对于虚拟主机来说,没有服务器权限,算是一个不错的选择。可是对于使用服务器的朋友来说,我们有更好的选择。
我们可以关闭原生定时任务,通过宝塔面板设置定时任务,它是准点执行,执行频率自由控制,不需要等待访客浏览触发。
关闭原生定时任务执行以下指令,放在文件wp-config.php最上面<?php下方就行∶
define('DISABLE_WP_CRON', true);
设置宝塔计划任务脚本如下∶
php /www/wwwroot/网站目录/wp-cron.php
网站目录改成自己的就行。
我设置每五分钟执行一次,这样的话,博客里所有的定时任务都会被及时触发,W3 Total Cache页面缓存被我设置成预缓存,缓存期是7天,每15分钟执行一次,每次缓存200个网页,缓存到期后,整个博客缓存不到三个小时就可以全部更新一遍,让tmpfs页面缓存和Memcached短时间内更新到最新状态,博客除了在缓存到期两个多小时和更新数据后的两个多小时需要重新生成新缓存,其他时间,tmpfs内存盘、Memcached、数据库内存池都被数据库数据灌满,预加载绝大多数时间都处于空转状态。