WooCommerce 的 Scheduled Actions 是一個任務排程系統,主要負責自動處理各種延遲執行或定期執行的背景任務;時間久了之後,計畫任務中的計劃操作,可能會因堆積數千個紀錄表單而變得分常臃腫,進而直接影響 WordPress 資料庫的效能。
它是由 WooCommerce 的一個內建工具 Action Scheduler 管理的,這個工具像是一個輕量版的「任務佇列系統」。

Scheduled Actions 記錄著失敗的任務 (如電子郵件發送、付款請求)、取消訂單或完成付款的狀態,或 WooCommerce Extensions 的定時任務,都會記錄在此系統,由於都已經成為過去的紀錄,因此可以安全的從 wp_actionscheduler_actions 資料表中清除。
你可以在 phpMyadmin SQL 選項頁面中執行此操作。

請在 SQL 的區塊執行下列 3 個指令,請分次輸入指令執行以確保安全:
DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'canceled'
PHPDELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'failed'
PHPDELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'complete'
PHP清除 wp_actionscheduler_logs 資料表
如果 wp_actionscheduler_logs 資料表過於臃腫,只需在 phpMyadmin 操作清空它即可。

或透過 SQL 輸入指令執行:
TRUNCATE wp_actionscheduler_logs
PHP自動清除 WooCommerce Scheduled Actions 資料表
在 functions.php 加入這段程式碼,會讓 Action Scheduler 在執行它自己的垃圾清理程式時,只保留 7 天以內的 completed、failed、cancelled 的 actions。
add_filter( 'action_scheduler_retention_period', 'wpb_action_scheduler_purge' );
// 將 Action Scheduler 的預設保留時間改為一週
function wpb_action_scheduler_purge() {
return WEEK_IN_SECONDS; // 604800 秒(7 天)
}
PHPFor Unsplash+
發佈留言