Cron là một tiện ích Unix / Linux mà thường được sử dụng để chạy các lệnh hoặc một script trên máy chủ web chạy ở chế độ nền. Một công việc JOB là 1 nhiệm vụ riêng, được sử dụng để thực thi công việc vào những thời điểm chu kỳ cố định, ngày, hoặc khoảng thời gian. Thực hiện cron một cách lặp lại đều đặn sẽ tiết tiết kiệm thời gian của bạn. Trong WordPress, bạn dễ dàng cài đặt cron bởi plugin WP-Cron , được sử dụng để mô phỏng một hệ thống cron.

Một vài ví dụ về cron WordPress có thể liên quan đến việc lập kế hoạch một bài đăng, tạo bản sao lưu plugin chạy theo một lịch trình định sẵn. Hôm nay chúng ta sẽ đi sâu vào cách làm sao để tạo, chỉnh sửa, và chạy một công việc định kỳ (cron) trong WordPress.

Thiết lập một WordPress Cron Job

WP-Cron sẽ khác với hệ thống cron của linux và cũng có ưu và nhược điểm riêng của nó. Ví dụ, WP-Cron dựa hoàn toàn vào những khoảng thời gian, trong khi một linux cron dựa vào thời điểm cụ thể. Một WP-Cron cũng chỉ hoạt động khi trang web được tải (back-end hay front-end), do đó có thể nó ít đáng tin cậy. Khoảng thời gian mặc định được cung cấp bởi WordPress là hourly, twicedaily, và daily.

Để lập kế hoạch sự kiện WP-Cron chúng ta sử dụng hook tùy chỉnh. Chúng tôi khuyên bạn nên xem hướng dẫn chi tiết của plugin để quản lý sự kiện cron . Nếu bạn đang tìm kiếm một cách khác để thiết lập một hệ thống cron với WordPress chúng tôi khuyên bạn nên đọc bài viết của Tom Mcfarlin nếu muốn tạo một công việc cron trong WordPress . Và đối với những người dùng bình thường , chúng ta sẽ khám phá phương án đơn giản làm thế nào để dễ dàng sử dụng WP-Cron với plugin miễn phí WP Crontrol plugin . Nó cho phép bạn xem và kiểm soát những gì đang xảy ra trong hệ thống WP-Cron.

wp control plugin

WP Control WordPress plugin

WP Crontrol có hơn 80.000 cài đặt đang hoạt động với 4,9 trên 5 đánh giá ấn tượng. Nhiều người trong cộng đồng WordPress thực sự yêu plugin này.

Bạn có thể tải về từ kho WordPress hoặc bằng cách truy cập dưới menu “plugins > Add New”. Tính năng:

  • Khả năng để xem tất cả các sự kiện cron đi kèm với tham số, chu kỳ, và thông báo thời gian chạy.
  • Chỉnh sửa, xóa, và chạy ngay lập tức bất kỳ sự kiện cron nào.
  • Thêm sự kiện cron mới.
  • Thêm, chỉnh sửa, và xóa lịch chạy cron.

Lịch trình WP-Cron

Sau khi kích hoạt, bạn có thể thay đổi lịch trình cron tại cài đặt “Cron Schedules“ . Chú ý plugin cho biết một lịch trình mặc định bổ sung của hàng tuần. Bạn cũng có thể thêm job được tính bằng giây, chẳng hạn như 21600 giây cho mỗi 6 giờ.

      

NGoài ra, bạn còn có thể tạo thêm các khoảng thời gian khác nhau tùy ý với đoạn mã PHP , 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

Bên cạnh đó một danh sách các công việc hiện tại được liệt kê mà đã được lên lịch. Chuyển đến Tools > Cron Events. Nhiều sự kiện có lấy tên trùng với tên plugin, có thể dễ dàng nhận biết khi điều tra về các sự kiện liên quan đến plugin bạn đang làm việc , chẳng hạn như “woocoomerce_cleanup_sessions“ hoặc “gravityforms_cron.“

wp-cron events

Để chạy một sự kiện Cron ngay lập tức chỉ cần đơn giản nhấp vào “Run Now“ bên cạnh tên hành động. Điều này có thể hữu ích khi debug sự cố trước khi có thể áp dụng trên website thật.

successfully excuted cron event

Sửa sự kiện Cron

Bạn cũng có thể chỉnh sửa sự kiện Cron hiện có bằng cách nhấp vào “Edit“ bên cạnh tên. Sau đó bạn có thể thay đổi tên hành động, tham số, thời gian chạy, và lặp lại theo lịch trình.

modify cron event

Thêm sự kiện Cron

Bạn cũng có thể thêm sự kiện Cron. Trong ví dụ này, chúng ta sẽ thêm công việc 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ọ đang gặp vấn đề với ý kiến ​​đồng bộ qua lại. Trong tài liệu thứ ba phát triển Plugin đó nên có tên của sự kiện cron của họ, hay chính xác là tên hành động. Trong trường hợp này nó là “dsq_sync_forum“.

Nếu bạn đang tạo cron từ đầu, mỗi hành động sẽ yêu cầu hàm sử lý thông qua action hook cho hành động tương ứng ở đâu đó trong mã của bạn, chẳng hạn như tập tin functions.php (tìm hiểu: thiết kế web  ) trong thư mục giao diện. VD:

add_action( 'my_hookname', 'my_function' );

Bước tiếp theo là viết hàm chức năng cho sự kiện.

function my_function() {
    wp_mail( '[email protected]', 'WP Crontrol', 'WP Crontrol rocks!' );
}

Đối với Disqus, đầu tiên chúng ta thêm một lịch trình cron trong khoảng 600 giây (10 phút). Để bắt đầu tạo, bạn bấm vào “Add Cron Event“ và gõ “dsq_sync_forum“ cho tên hành động, chọn thời gian chạy, và chọn chu kỳ 10 phút. Sau đó chúng ta nhấp vào nút “Add Cron Event.“ để thêm mới cron. Như vậy cron sẽ chạy sau mỗi 10 phút tự động cho chúng ta để đồng bộ hóa nhận xét Disqus vào cơ sở dữ liệu WordPress.

add WordPress cron job

Nó thực sự là khá dễ dàng để sử dụng phải không.

WP-Cron WP-CLI

Bạn cũng có thể quản lý sự kiện WP-Cron thông qua dòng lệnh WP-CLI . Ví dụ, những lệnh sau đây 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 

wp-cron event list

Xem thêm hướng dẫn WP-CLI cron job về lệnh bổ sung và các thông số đi kèm.

chúc bạn thành công!