KHẮC PHỤC các bảng SQL KHỔNG LỒ: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Tips]

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 adminCác hướng dẫn đơn giản và hàng nghìn plugin được phát triển cho Woo chỉ là một số lý do tại sao bạn nên thử khi 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 Trình lập lịch hành động WooC Commerce 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 "wp_actionsscheduler"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à đủ cho 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 tôi truy cập cơ sở dữ liệu thông qua phpMyAdminthì 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 WooCommerce và nó được kết nối với Facebook Shops thông qua plugin "Facebook cho WooCommerce", Nó tự động đồng bộ hóa các sản phẩm WooCommerce với tài khoản Facebook Shops của bạn. Và anh ấy làm điều đó trong khoảng 15 phút. Nếu các mục SQL này 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 chạy cửa hàng của bạn 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àm thế nào để » Tò mò » KHẮC PHỤC các bảng SQL LỚN: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Tips]

Đam mê công nghệ, thích test và viết các bài hướng dẫn về hệ điều hành macOS, Linux, Windows, Về WordPress, WooCommerce và định cấu hình máy chủ web LEMP (Linux, NGINX, MySQL và PHP). Tôi viết tiếp StealthSettings.com từ năm 2006 và một vài năm sau, tôi bắt đầu viết trên iHowTo.Tips hướng dẫn và tin tức về các thiết bị trong hệ sinh thái Apple: iPhone, iPad, Apple Xem, HomePod, iMac, MacBook, AirPods và phụ kiện.

1 suy nghĩ về “SỬA bảng SQL LỚN: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce Tips]”

  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