Hướng dẫn Vô hiệu hóa, thay thế WP-Cron bằng Cron hệ thống

WP-Cron là phiên bản mô phỏng không hoàn chỉnh của Cron hệ thống. Nó được sử dụng để lên lịch hoạt động các tác vụ định kỳ trên WordPress. Những tác vụ này có thể là: lên lịch xuất bản bài viết, kiểm tra cập nhật, xóa cache, backup... Tuy nhiên, không giống như Cron hệ thống, WP-Cron sẽ được kích hoạt mỗi khi có khách truy cập. Nó cũng sẽ kiểm tra và thực hiện những tác vụ đã được lên lịch trước đó. Điều này không chỉ làm tăng thêm HTTP/HTTPS requests mà còn có những ảnh hưởng xấu dến website.

wordpress-cron-job.jpg

Lấy ví dụ với những trang web nhỏ, không có nhiều người truy cập, những tác vụ đã được lên lịch trước đó sẽ không thể thực hiện đúng giờ. Trong trường hợp website có lượng lớn truy cập hoặc bị DDoS, số lần WP-Cron được kích hoạt cũng sẽ rất nhiều. làm tiêu tốn tài nguyên hệ thống. Vậy làm thế nào để vô hiệu hóa WP-Cron và thay thế bằng Cron hệ thống?

Vô hiệu hóa WP-Cron

Việc vô hiệu hóa WP-Cron cũng rất đơn giản, các bạn chỉ cần vào thư mục chứa WordPress, tìm file wp-config.php và thêm vào:
PHP:
define( 'DISABLE_WP_CRON', true );
Lưu ý là nó phải nằm giữa 2 dòng:
Code:
/* Add any custom values between this line and the "stop editing" line. */
Code:
/* That's all, stop editing! Happy publishing. */

Kích hoạt Cron hệ thống thay cho WP-Cron

Sau khi vô hiệu hóa WP-Cron, các bạn cần phải thiết lập Cron Job để website hoạt động bình thường.

cPanel

1. Đăng nhập cPanel, tìm và chọn CronJobs (có thể dùng công cụ tìm kiếm).
cpanel-cron-jobs.png


2. Ở phần Common Settings các bạn điền giống như ảnh bên dưới, chọn Add New Cron Job khi hoàn tất.
wordpress-cron-job-cpanel.png

Trong đó:
  • Minute: điền */15 để chạy Cron Job mỗi 15 phút một lần (thay đổi tùy theo nhu cầu).
  • Hour, Day of Month, Month, Day of Week: để * như mặc định.
  • Command: các bạn để điền như bên dưới (thay đổi tên miền và https nếu có).
Code:
wget -q -O - http://www.domain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1

DirectAdmin

1. Vào DirectAdmin, tìm và chọn Cron Jobs (có thể dùng tìm kiếm trên DirectAdmin).

2. Chọn tiếp Create Cron Job.

3. Trong giao diện Create Cron Job, các bạn sẽ nhìn thấy giao diện như bên dưới:
wordpress-cron-job-directadmin.png

Trong đó:
  • Minute: điền */15 để chạy Cron Job mỗi 15 phút một lần (thay đổi tùy theo nhu cầu).
  • Hour, Day of Month, Month, Day of Week: để * như mặc định.
  • Command: các bạn để điền như bên dưới (thay đổi tên miền và https nếu có).
Code:
wget -q -O - http://www.domain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1

4. Cuối cùng là nhấn CREATE để hoàn tất tạo Cron Job. Những Cron Jobs được tạo thành công sẽ hiển thị như bên dưới:
directadmin-cron-jobs.png


Không phải cPanel hay DirectAdmin

Mỗi panel lại có giao diện khác nhau nên cách tạo Cron cũng có chút khác. Nhưng về cơ bản thì những lệnh để thực thi Cron là giống nhau. Các bạn có thể tham khảo 2 lệnh bên dưới, nhớ thay đổi cho phù hợp:
Code:
wget -q -O - http://www.domain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
Code:
curl http://www.domain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1

Tổng kết

Như mình đã nói ở trên, WP-Cron là một phiên bản mô phỏng không hoàn chỉnh của Cron. Những nhà phát triển WordPress tạo ra nó như là một giải pháp thay thế trong những môi trường không hỗ trợ Cron. Nếu như host của các bạn hỗ trợ Cron thì cũng đừng ngần ngại mà chuyển sang nó nhé!
 
Top