在檢查apache的log檔時,發現wp-cron常常執行時間很長也常Timeout。當流量不大或是系統資源夠大時,其實並不會發現有什麼問題,可是如果在資源有限及流量增加時,就會因為執行時間太長增加wordpress回傳的反應時間,如果有系統的控制權,建議可以使用排程crontab來取代。
1.首先Disable wp-cron
修改wordpress目錄下的wp-config.php
define('DISABLE_WP_CRON', true);
2.建立一個cronjob
crontab -e
增加一行如下
*/10 * * * * curl https:///blog.yslifes.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1
其中/10是指十分鐘執行一次,而https://blog.yslifes.com則改成您的網址
或是
*/10 * * * * cd /var/www/yslifes.com/htdocs; php /var/www/yslifes.com/htdocs/wp-cron.php?doing_wp_cron > /dev/null 2>&1
其中/var/www/yslifes.com/htdocs/就是您wordpress的目錄
參考資料