Mỗi 5 phút
*/5 * * * *
Mỗi 5 phút: vào đầu giờ và cứ 5 phút sau đó.
Bước nhảy (*/5) là cách dễ nhất để diễn đạt "mỗi N" mà không phải liệt kê từng số. Thường dùng cho health check và tác vụ polling.
Tạo, giải mã và xem trước lịch cron cùng các thời điểm chạy tiếp theo.
Cập nhật lần cuối
Coddy dạy bạn bằng cách viết code thật ngay trên trình duyệt: bài học tương tác, phản hồi tức thì và AI hỗ trợ khi bạn bị kẹt.
Cron expression là cách viết gọn để mô tả một lịch lặp lại. Đây là cùng cú pháp mà cron của Unix, trình lập lịch gốc của Linux, sử dụng, và nó đã lan sang gần như mọi trình chạy tác vụ bạn sẽ gặp: Kubernetes CronJob, lịch của GitHub Actions, AWS EventBridge, Cloudflare Workers, Vercel cron và phần lớn nền tảng CI/CD.
Định dạng này trông đáng sợ nhưng thực ra chỉ là năm trường cách nhau bằng dấu cách: phút, giờ, ngày trong tháng, tháng, thứ trong tuần. Mỗi trường là một số, một danh sách (1,15), một khoảng (9-17), một bước nhảy (*/5) hoặc ký tự đại diện (*). Một công cụ cron tốt dịch biểu thức thành câu dễ hiểu và hiển thị các thời điểm chạy tiếp theo để bạn kiểm tra trước khi triển khai.
Một số nền tảng mở rộng cú pháp 5 trường cơ bản với trường *giây* ở đầu (Quartz, Spring, Kubernetes 6 trường) hoặc trường *năm* ở cuối. Luôn kiểm tra trình lập lịch của bạn chấp nhận định dạng nào trước khi dán biểu thức vào.
* nghĩa là "mọi giá trị" của trường đó: đây là lý do phổ biến nhất khiến lịch chạy thường xuyên hơn dự kiến.*/N nghĩa là "mỗi N đơn vị": */5 ở trường phút là "mỗi 5 phút".* còn trường kia là giá trị cụ thể là cách an toàn hơn để viết quy tắc chỉ theo thứ hoặc chỉ theo tháng.Chọn mẫu gần với điều bạn muốn: Mỗi phút, Mỗi giờ, Mỗi ngày lúc 9 giờ sáng, Ngày thường lúc 9 giờ sáng, Hằng tháng. Biểu thức sẽ hiện trong trình chỉnh sửa.
Sửa phút, giờ, ngày trong tháng, tháng, thứ trong tuần. Dùng * cho mọi giá trị, danh sách cách nhau bằng dấu phẩy, khoảng (9-17) hoặc bước nhảy (*/15).
Công cụ dịch biểu thức thành một câu (Lúc 09:00 từ Thứ Hai đến Thứ Sáu). Nếu câu đó không khớp với điều bạn muốn, biểu thức đang sai.
Kiểm tra từ 5 đến 10 thời điểm chạy tiếp theo theo múi giờ địa phương. Cẩn thận với thời điểm chuyển đổi giờ mùa hè nếu lịch nằm gần lúc đổi giờ.
Đưa biểu thức vào crontab, workflow GitHub Actions, Kubernetes CronJob hoặc bất kỳ trình lập lịch nào bạn đang dùng.
Năm trường của một cron expression chuẩn, theo thứ tự. Tài liệu tham khảo: trang man crontab(5) của POSIX.
| Vị trí | Trường | Khoảng giá trị | Ký tự đặc biệt |
|---|---|---|---|
| 1 | Phút | 0 đến 59 | * , - / |
| 2 | Giờ | 0 đến 23 | * , - / |
| 3 | Ngày trong tháng | 1 đến 31 | * , - / ? (một số biến thể) |
| 4 | Tháng | 1 đến 12 hoặc JAN đến DEC | * , - / |
| 5 | Thứ trong tuần | 0 đến 6 (Chủ Nhật = 0) hoặc SUN đến SAT | * , - / |
*/5 * * * *
Mỗi 5 phút: vào đầu giờ và cứ 5 phút sau đó.
Bước nhảy (*/5) là cách dễ nhất để diễn đạt "mỗi N" mà không phải liệt kê từng số. Thường dùng cho health check và tác vụ polling.
0 9 * * 1-5
Lúc 09:00 từ Thứ Hai đến Thứ Sáu.
Khoảng thứ trong tuần 1-5 nghĩa là từ Thứ Hai đến Thứ Sáu. Dùng cho lời nhắc trong giờ hành chính và bản tin tổng hợp chỉ gửi ngày thường.
0 0 1 * *
Lúc 00:00 vào ngày 1 hằng tháng.
Ngày trong tháng là 1 cộng với * cho mọi trường còn lại tạo ra một tác vụ đúng nghĩa hằng tháng. Thường dùng cho thanh toán, báo cáo và tác vụ luân phiên.
0,30 9-17 * * 1-5
Vào phút 0 và 30, từ 09:00 đến 17:00, từ Thứ Hai đến Thứ Sáu.
Danh sách dấu phẩy (0,30) cộng một khoảng (9-17) cộng ngày thường. Đây là kiểu lịch bạn dùng để làm mới dữ liệu BI hoặc xử lý hàng đợi chỉ quan trọng trong giờ làm việc.
*/45 và mong nó chạy mỗi 45 phút. Bước nhảy được tính từ 0, nên */45 chạy ở phút 0 và 45, không phải cách đều 45 phút.0 2 * * * có thể chạy hai lần vào ngày lùi đồng hồ, và không chạy lần nào vào ngày đồng hồ tiến lên.* cho *mọi giá trị*, một số cho giá trị chính xác, danh sách dấu phẩy (1,15), khoảng (9-17) hoặc bước nhảy (*/5).*/5 * * * * có nghĩa là gì?*/5 ở trường phút chạy vào phút 0 và cứ mỗi 5 phút sau đó (0, 5, 10, 15, …, 55), còn * ở mọi trường khác nghĩa là nó chạy mỗi giờ, mỗi ngày, mỗi tháng, mọi thứ trong tuần.TZ=Europe/Berlin, schedule expression của AWS, v.v.). Khi không chắc, hãy lưu lịch theo UTC.Cron 5 trường chuẩn có đơn vị nhỏ nhất là phút, nên độ chi tiết cao nhất là mỗi phút. Quartz cron, Spring cron và một số phiên bản Kubernetes thêm trường *giây* thứ 6 cho lịch dưới một phút.
0 0 * * 0 và 0 0 * * 7 khác nhau thế nào?7 cũng được chấp nhận là Chủ Nhật để tương thích với một số biến thể.