Cách tạo và sửa đổi WordPress Cron Job
Cron là một tiện ích Unix / Linux thường được sử dụng để lên lịch các lệnh hoặc tập lệnh trên máy chủ web chạy trong nền. Một cron job là chính nhiệm vụ thường được sử dụng để lên lịch các nhiệm vụ vào các thời gian, ngày hoặc khoảng thời gian cố định định kỳ. Thông thường chúng liên quan đến các nhiệm vụ lặp đi lặp lại được tự động để tiết kiệm thời gian. Trong WordPress, điều này được xử lý bởi WP-Cron , được sử dụng để mô phỏng một hệ thống cron.
Một số ví dụ về công việc định kỳ WordPress có thể liên quan đến việc lên lịch đăng bài để xuất bản hoặc plugin sao lưu chạy theo lịch trình được xác định trước. Hôm nay chúng ta sẽ đi sâu vào cách dễ dàng tạo, sửa đổi và chạy một công việc định kỳ WordPress.
Mục Lục
Cách thiết lập công việc WordPress Cron
Điều quan trọng cần lưu ý là WP-Cron hơi khác so với hệ thống cron và mỗi loại đều có ưu và nhược điểm riêng. Ví dụ, WP-Cron phụ thuộc hoàn toàn vào các khoảng thời gian, trong khi một hệ thống cron phụ thuộc vào thời gian cụ thể. WP-Cron cũng chỉ hoạt động khi trang được tải (back-end hoặc front-end), có thể kém tin cậy hơn. Các khoảng thời gian mặc định được cung cấp bởi WordPress là hàng giờ và hàng ngày.
WP Crontrol có hơn 80.000 lượt cài đặt hoạt động với đánh giá 4,9 trên 5 điểm. Nhiều người trong cộng đồng WordPress thực sự yêu thích plugin này.
Plugin này siêu hữu ích. Nó cho thấy những công việc CRON nên chạy, bước đầu tiên tuyệt vời để hiểu những gì đang diễn ra và nó có hoạt động hay không. Ngoài ra, bạn có thể tạo các công việc định kỳ mới và kích hoạt các công việc hiện có để chạy. – Josh, người tạo ra Caldera Forms
Bạn có thể tải xuống từ kho lưu trữ WordPress hoặc bằng cách tìm kiếm nó trong bảng điều khiển WordPress của bạn trong phần bổ trợ của Add New. Các tính năng của WP Control bao gồm:
- Khả năng xem tất cả các sự kiện cron cùng với các đối số, sự tái diễn và thời gian chạy tiếp theo của chúng.
- Chỉnh sửa, xóa và ngay lập tức chạy bất kỳ sự kiện cron.
- Thêm các sự kiện cron mới.
- Thêm, chỉnh sửa và xóa lịch trình cron tùy chỉnh.
WP-Cron Schedules
Sau khi được kích hoạt, bạn có thể thay đổi WordPress Cron Job theo “Cron Schedules” từ trong cài đặt của bảng điều khiển WordPress của bạn. Lưu ý rằng plugin bổ sung một lịch trình mặc định bổ sung hàng tuần. Bạn cũng có thể thêm lịch trình bổ sung trong vài giây, chẳng hạn như 21600 giây cho mỗi 6 giờ.
Các khoảng này cũng có thể được thêm vào bộ lọc bằng các mã, chẳng hạn như:
add_filter( 'cron_schedules', 'example_add_cron_interval' );
function example_add_cron_interval( $schedules ) {
$schedules['five_seconds'] = array(
'interval' => 5,
'display' => esc_html__( 'Every Five Seconds' ),
);
return $schedules;
}
Sự kiện WP-Cron
Sau đó, bạn cũng có thể sử dụng plugin để xem các công việc WordPress Cron hiện tại của mình đã được lên lịch. Bên dưới Tools nhấp vào Cron Events. Nhiều người trong số các tên hành động có thể dễ dàng nhận ra vì chúng phải khớp với một phần của tên plugin, chẳng hạn như, woocoomerce_cleanup_simes, hoặc trọng lựcformform_c_c.
Bạn chạy một sự kiện Cron ngay lập tức bằng cách nhấp vào ngay Run ngay bên cạnh tên hành động. Điều này có thể hữu ích khi khắc phục sự cố vì bạn có thể cần chạy sự kiện Cron nhiều lần.
Sửa đổi sự kiện Cron
Bạn cũng có thể chỉnh sửa các sự kiện Cron hiện có bằng cách nhấp vào Chỉnh sửa trực tiếp bên cạnh tên hành động. Sau đó, bạn có thể thay đổi tên hành động, đối số, lần chạy tiếp theo và lặp lại theo lịch trình. Hãy cẩn thận với điều này mặc dù nhiều plugin dựa vào công việc Cron của chúng để hoạt động đúng.
Thêm sự kiện Cron
Bạn cũng có thể Thêm các sự kiện Cron. Trong ví dụ này, chúng tôi sẽ thêm công việc WordPress Cron cho plugin Disqus. Nhiều người có thể muốn làm điều này để thay đổi tần số đồng bộ hóa hoặc nếu họ gặp vấn đề với các bình luận đồng bộ hóa qua lại. Mỗi tài liệu của nhà phát triển plugin bên thứ ba nên có tên của sự kiện định kỳ của họ, hay đúng hơn là tên hành động. Trong trường hợp này, nó là DS DS_s_sync_forum , đang được plugin sử dụng.
Nếu bạn đang tạo từ đầu, bạn sẽ cần một móc hành động tương ứng ở đâu đó trong mã của bạn, chẳng hạn như tệp tin.php. Đây là ví dụ mà WP-Crontrol đưa ra:
add_action( 'my_hookname', 'my_function' );
Bước tiếp theo là viết chức năng của bạn.
function my_function() {
wp_mail( 'hello@example.com', 'WP Crontrol', 'WP Crontrol rocks!' );
}
Đối với Disqus, trước tiên chúng tôi thêm lịch trình cron mới là 600 giây (10 phút). Sau đó, chúng tôi nhấp vào trong Thêm sự kiện Cron và nhập vào DSq_sync_forum, làm tên hành động của chúng tôi, chọn thời gian chạy tiếp theo và chọn lặp lại 10 phút chúng tôi vừa tạo. Sau đó, chúng tôi nhấp vào Add Cron. Hiện tại, điều này sẽ tự động chạy cứ sau 10 phút để chúng tôi tự động đồng bộ hóa các nhận xét Disqus trở lại cơ sở dữ liệu WordPress của chúng tôi.
Bạn cũng có thể quản lý các sự kiện WP-Cron và hoặc công việc WordPress Cron trong WP-CLI . Ví dụ, lệnh sau sẽ cung cấp cho bạn danh sách sự kiện cron hiện tại của bạn.
wp cron event list
Xem tài liệu chính thức của WP-CLI để biết thêm các lệnh và tham số.