使用crontab取代wordpress的wp-cron

在檢查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的目錄

參考資料

Better wp-cron using linux’s crontab

發表迴響