Quy tắc và ví dụ khi tạo CronJob

Giới thiệu về CronJob

CronJob là một đối tượng Kubernetes cho phép bạn lên lịch và chạy các tác vụ định kỳ. Chúng có thể được sử dụng để tự động hóa một loạt các tác vụ, chẳng hạn như sao lưu dữ liệu, gửi thông báo và xử lý dữ liệu.

Quy tắc tạo CronJob

CronJob được xác định bởi các trường sau:

  • schedule: Định nghĩa lịch trình chạy của CronJob. Nó có thể được biểu diễn dưới dạng biểu thức Cron.

  • jobTemplate: Định nghĩa mẫu cho các Pod sẽ được tạo ra bởi CronJob hỗ trợ thông qua giao diện của Sunteco Cloud

Biểu thức Cron

Biểu thức Cron là một chuỗi được sử dụng để xác định lịch trình chạy của CronJob. Nó có thể được biểu diễn dưới dạng chuỗi chữ và số, được phân tách bằng dấu cách.

Cấu trúc cơ bản

Cơ bản là một lệnh cron job sẽ có 2 thành phần chính đó chính là: schedule và command. Đây là cách viết lệnh:

  • * * * * : là thời gian, chúng ta sẽ tìm hiểu ý nghĩa của nó ở phần dưới

pháp

Thì cú pháp của nó sẽ biểu thị như sau :

phút1 - 59 giờ0 - 23 ngày1 - 31 tháng1 - 12 thứ0 - 7

Tóm tắt :

  • Minute – phút của giờ mà lệnh sẽ chạy, trong khoảng từ 0 đến 59

  • Hour – dựa trên giờ mà lệnh sẽ chạy, trong khoảng từ 0 đến 23

  • Day of the month – dựa trên ngày của tháng mà bạn muốn chạy lệnh, trong khoảng từ 1 đến 31

  • Month – dựa trên tháng mà lệnh cụ thể chạy, trong khoảng từ 1 đến 12

  • Day of the week – dựa trên ngày của tuần mà bạn muốn chạy lệnh, trong khoảng từ 0 đến 7

  1. Quy tắc và ví dụ:

    a. Cấu trúc cơ bản: Biểu thức lịch trình thường có cấu trúc cơ bản gồm năm (year), tháng (month), ngày (day), giờ (hour or hours), phút (minute or minutes), và giây (second or seconds), tùy theo hệ thống quản lý thời gian.

    Ví dụ: 0 0 * * *  (mỗi giờ đầu tiên của mỗi ngày).

    b. Dấu cách và ký tự trống: Phần của biểu thức lịch trình thường được ngăn cách bằng dấu cách hoặc ký tự trống.

    Ví dụ: 0 0 * * *  hoặc 0 0 * * *

    c. Số lượng: Một số lượng cụ thể của các phần (năm, tháng, ngày, giờ, phút) được định nghĩa bằng các số nguyên không âm.

    Ví dụ: 0 0 1 1 *  (mỗi năm vào ngày 1 tháng 1).

    d. Dấu hoa thị (*): Dấu hoa thị (*) thường được sử dụng để biểu thị “mọi giá trị” cho một phần cụ thể.

    Ví dụ: * * * * * (mọi giây, mọi phút, mọi giờ, mọi ngày, mọi tháng, mọi năm).

    e. Dấu phẩy (,): Dấu phẩy thường được sử dụng để xác định nhiều giá trị cho một phần cụ thể.

    Ví dụ: 0,30 * * * *  (mỗi phút đầu tiên và mỗi phút thứ 30 của mỗi giờ).

    f. Dấu gạch nối (-): Dấu gạch nối (-) thường được sử dụng để xác định khoảng giá trị cho một phần cụ thể.

    Ví dụ: 1-5 * * * *  (từ phút thứ 1 đến phút thứ 5 của mỗi giờ).

    g. Dấu gạch chéo (/): Dấu gạch chéo (/) thường được sử dụng để xác định khoảng thời gian hoặc tần suất.

    Ví dụ: */15 * * * *  (mỗi 15 giây).

    h. Biểu thức vùng (Ranges): Bạn có thể xác định một biểu thức lịch trình cho một khoảng giá trị cụ thể.

    Ví dụ: 0 9-17 MON-FRI (mỗi ngày từ thứ 2 đến thứ 6 vào giờ từ 9 sáng đến 5 chiều).

    i. Biểu thức có dấu hỏi (?): Một số biểu thức lịch trình có thể chứa dấu hỏi (?) để chỉ ra phần không xác định hoặc bị bỏ qua.

    Ví dụ: 0 0 ? * * (mỗi giờ đầu tiên của mỗi ngày).

    j. Sử dụng số nguyên từ 0 đến 6: Để chỉ định ngày trong tuần, bạn sử dụng các số nguyên từ 0 đến 6, tương ứng với các ngày từ Chủ Nhật (0) đến thứ 7 (6).

    Ví dụ:

    • 0 0 * 0 sẽ chạy vào mỗi Chủ Nhật.

    • 0 0 * 1 sẽ chạy vào mỗi thứ Hai.

    k. Sử dụng các biểu thức tên ngày trong tuần: Một số biểu thức Cron cũng cho phép sử dụng các biểu thức tên ngày trong tuần, chẳng hạn như SUNMONTUEWEDTHUFRI, và SAT.

    Ví dụ:

    • 0 0 * SUN sẽ chạy vào mỗi Chủ Nhật.

    • 0 0 * MON sẽ chạy vào mỗi thứ Hai.

    l. Sử dụng ký tự ‘*’ cho mọi ngày trong tuần: Nếu bạn muốn biểu thức Cron chạy vào mọi ngày trong tuần, bạn có thể sử dụng ký tự * cho phần ngày trong tuần.

    Ví dụ: * 0 0 * * sẽ chạy vào mọi ngày trong tuần.

    m. Kết hợp ngày trong tuần: Bạn có thể kết hợp ngày trong tuần bằng cách sử dụng dấu phẩy (,) hoặc khoảng (-).

    Ví dụ:

    • 0 0 * 1,3,5 sẽ chạy vào mỗi thứ Hai, thứ Tư, và thứ Sáu.

    • 0 0 * 2-4 sẽ chạy vào mỗi thứ Ba, thứ Tư, và thứ Năm.

    n. Sử dụng ký tự ‘?’ trong biểu thức Cron: Trong một số biểu thức Cron đặc biệt như biểu thức Cron dành cho Quartz Scheduler, bạn có thể sử dụng ký tự ‘?’ để chỉ ra phần ngày trong tuần không quan trọng.

    Ví dụ:

    • 0

    • ? * MON-SAT sẽ chạy vào mỗi ngày từ thứ Hai đến thứ Bảy.