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 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 WordPress khác.
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 Action Scheduler 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 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 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 chức năng / php của chủ đề WordPress / WooCommerce mà cửa hàng của bạn đang 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".

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

Giới thiệu về tác giả

Stealth

Đam mê về mọi thứ tiện ích và CNTT, tôi thích thú khi viết về tính năng ẩnsettings.com từ năm 2006 và tôi muốn cùng bạn khám phá những điều mới về máy tính và hệ điều hành macHệ điều hành, Linux, Windows, iOS và Android.

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