KHẮC PHỤC các bảng SQL KHỔNG LỒ: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Lời khuyên]

WooCommerce nó đã trở thành một mô-đun được sử dụng rộng rãi cửa hàng trực tuyến. SEO, sản phẩm, quản lý hàng tồn kho, mã rõ ràng và trực quan, giao diện quản trị đơn giản và hàng nghìn plugin được phát triển cho Woo, chỉ là một số lập luận đáng để bạn có cơ hội khi bạn nghĩ đến việc phát triển một cửa hàng trực tuyến.

Giống như bất kỳ CMS nào, Woo cũng không ngoại lệ với những điều kỳ lạ có thể xảy ra trong các tình huống sử dụng hoặc tương tác khác nhau với các plugin khác. WordPress.
Trên máy chủ tài nguyên phần cứng khá hào phóng, tôi nhận thấy rằng dịch vụ cơ sở dữ liệu (mysqld) bắt đầu yêu cầu gần 80-90% RAM. Một vấn đề khá nghiêm trọng, bởi vì tôi không hiểu lỗi 110 đến từ đâu theo định kỳ (110] Kết nối đã hết giờ).
Khi kiểm tra kỹ hơn các quy trình SQL, tôi thấy rằng cơ sở dữ liệu có hai bảng với khối lượng khá lớn: wp_actionscheduler_actions si wp_actionscheduler_logs.

Thông thường hành động theo lịch trình rượu bia WooCommerce Trình lập lịch trình hành động chúng sẽ được xóa tự động sau khi chúng được thực thi. Điều này không phải lúc nào cũng xảy ra và họ gặp khó khăn trong wp_actionsscheduler_actions với trạng thái: không, đã hủy, cấp phát chính hoặc hoàn thành.

Trong hình trên, các bảng "bộ lập lịch wp_actions"Họ chỉ có chỉ hơn 15 MB. Tôi xin lỗi vì tôi không có cảm hứng để chụp ảnh màn hình khi họ có 1.2 GB. Mặc dù vậy, 15 MB là khá nhiều đối với một bảng chứa các hành động được lập trình của WooCommerce.
Các bảng "sưng" này là kết quả của việc WP-Cron không xóa các mục nhập ai có địa vị "không","đã hủy"Và"hoàn thành“. Thông thường, các mục nhập này sẽ được tự động xóa khỏi cơ sở dữ liệu.
Các hành động đã lên lịch và trạng thái của chúng có thể được nhìn thấy rất dễ dàng và trong WooCommerce →  Trạng thái →  Hành động theo lịch trình.

Làm thế nào để làm sạch các máng xối "không","đã hủy"Và"hoàn thành"Trong wp_actionscheduler_actions si wp_actionscheduler_logs

Chúng ta truy cập cơ sở dữ liệu thông qua phpMyAdmin, sau đó tại SQL chúng ta thực hiện lần lượt các dòng lệnh:

DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'canceled'
DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'complete'
DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'failed'

Một khi bảng này được làm sạch, nó không có nghĩa là vấn đề đã được giải quyết. Như tôi đã nói ở trên, nguyên nhân chính là do dịch vụ WP-Cron bị vô hiệu hóa vì nhiều lý do khác nhau. Vì vậy, các mục có trạng thái "zombie" không thể bị xóa được nữa.
Điều rất quan trọng cần biết là nếu bạn có một cửa hàng trực tuyến trên WooCommercevà nó được kết nối với Facebook Shops thông qua plugin "diễn đàn Facebook WooCommerce", nó sẽ tự động đồng bộ hóa các sản phẩm từ WooCommerce bằng tài khoản Facebook Shops của bạn. Và anh ấy làm điều đó cứ sau 15 phút. Các mục SQL này nếu không được kiểm soát, bạn có thể nhận được vài trăm nghìn dòng"wc_facebook_regenerate_feed" trong "wp_actionscheduler_actions".

Khoảng thời gian này là ok đối với các cửa hàng có số lượng đơn hàng lớn và kho sản phẩm của Facebook Shops cần được cập nhật liên tục. Nếu bạn vẫn nghĩ rằng những đồng bộ này giữa Facebook và cửa hàng của bạn có thể được thực hiện 24 giờ một lần, thì dòng mã dưới đây có thể giúp bạn.

Mở tệp functions.php của chủ đề WordPress / WooCommerce trên đó cửa hàng của bạn chạy và thêm:

add_filter( 'wc_facebook_feed_generation_interval', function(){ return HOUR_IN_SECONDS * 24; } );

Tiếp theo, chúng tôi có thể đặt khoảng thời gian là một tuần để làm sạch tự động:

add_filter( 'action_scheduler_retention_period', 'wpb_action_scheduler_purge' );
function wpb_action_scheduler_purge() {
 return WEEK_IN_SECONDS;
}

Khi bạn lưu các thay đổi này, bạn sẽ không gặp vấn đề gì với các bảng khổng lồ cho "wp_actionscheduler_actions".

Là người yêu công nghệ, tôi rất vui được viết tại StealthSettings.com từ năm 2006. Tôi có kinh nghiệm đa dạng với các hệ điều hành: macOS, Windows và Linux, cũng như trong các ngôn ngữ lập trình và nền tảng blogging (WordPress) và cửa hàng trực tuyến (WooCommerce, Magento, PrestaShop).

Làm thế nào để » Tò mò » KHẮC PHỤC các bảng SQL KHỔNG LỒ: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Lời khuyên]

1 suy nghĩ về “KHẮC PHỤC các bảng SQL KHỔNG LỒ: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Lời khuyên]"

  1. @Stealth
    Tak cho hjælpen. Du redder min dag og shop. Jeg opdagede først dette efter et nedbrud af min webshop. Mange plugins er begyndt at dumpe deres output i den tabel og det fylder… Wooping 9.2GB tabel fik min host đến lúc opgive hans ellers tốt opp-tid. Nu tông đơ jeg med den fine kode!
    Lige et spørgsmål på falde rebet denne table “wpb_action_scheduler_purge” default tôi db'en eller skal jeg evt. đổi tên den cho đến khi không quên tôi min (default hedder min db ikke 'wp_') eller er det måske en funktion?
    Tak cho hjælpen og den super fine Artikel

    Trân trọng
    Mạng

    đáp lại
Để lại một bình luận