STACKJAVA

Cron expression là gì? Hướng dẫn cú pháp cron expression

Cron expression là gì? Hướng dẫn cú pháp cron expression

(Xem thêm: Code ví dụ Spring Boot tạo lịch với annotation @Scheduled)

Cron expression là gì?

Cron expression là một đoạn text với định dạng gồm 6 hoặc 7 trường để xác định lịch chạy cho một phương thức, hàm, ứng dụng.

Cron expression được sử dụng trong Java (Spring Scheduling Task, Quartz), trong Node.js (node-schedule)…

Mỗi trường trong cron expression chỉ được phép nhận các giá trị sau đây:

Trên trường Bắt buộc Giá trị cho phép Các ký tự đặc biệt cho phép
Seconds 0-59 , – * /
Minutes 0-59 , – * /
Hours 0-23 , – * /
Day of month 1-31 , – * ? / L W
Month 1-12 or JAN-DEC , – * /
Day of week 1-7 or SUN-SAT , – * ? / L #
Year Không , – * /

Trường thứ 7, tức là trường Year trong cron expression là không bắt buộc (đặc biệt ví dụ như trong Spring Schedule nó chỉ chấp nhận 6 trường đầu tiên).

Các ký tự đặc biệt trong Cron Expression

Ví dụ

Expression Ý nghĩa
0 0 12 * * ? 12h chiều hàng ngày
0 15 10 ? * * 10:15:00 hàng ngày
0 15 10 * * ? 10:15:00 hàng ngày
0 15 10 * * ? * 10:15:00 hàng ngày
0 15 10 * * ? 2005 10:15:00 hàng ngày – trong năm 2005
0 * 14 * * ? Vào đầu mỗi phút chạy một lần, trong khoảng từ 14h – 14h59
0 0/5 14 * * ? 5 phút chạy một lần từ 14h đến 14h55
0 0/5 14,18 * * ? 5 phút chạy một lần từ 14h-14h55 và 18h-18h55
0 0-5 14 * * ? 1 phút chạy một lần từ 14h00-14h05
0 10,44 14 ? 3 WED chạy vào lúc 14h10 và 14h44 vào tất cả các ngày thứ 3 của tháng 3
0 15 10 ? * MON-FRI chạy vào lúc 10h15 trong các ngày thứ hai đến thứ sáu
0 15 10 15 * ? chạy vào lúc 10h15 ngày 15 hàng tháng
0 15 10 L * ? chạy vào lúc 10h15 trong ngày cuối cùng của tháng
0 15 10 ? * 6L chạy vào lúc 10h15 của thứ sáu cuối cùng của tháng
0 15 10 ? * 6L 2002-2005 chạy vào lúc 10h15 của thứ sáu cuối cùng của tháng, trong các năm 2002-2005

(Xem thêm: Code ví dụ cron expression: Đặt lịch với Java Quartz)

(Xem thêm: Code ví dụ cron expression: Đặt lịch với Spring Boot @Scheduled)

Cron expression là gì? Hướng dẫn cú pháp cron expression

Okay, Done!

References:

https://docs.oracle.com/…/cron_expressions.htm

http://www.quartz-scheduler.org/…/crontrigger.html

https://docs.spring.io/…/CronSequenceGenerator.html