Header Ads

Seo Services

Hế lô anh em ✌️✌️✌️

Chắc anh em dev đã nghe nhiều về Regular Expression (biểu thức chính quy) rồi. Vây Cron Expression là gì - anh em đã nghe chưa?

Mình nghĩ chắc không nhiều anh em biết hoặc tìm hiểu vì phạm vi sử dụng của Cron Expression chủ yếu là trong các bài toán lập lịch (không phải ae dev nào cũng từng làm cái này, nhất là mấy ae front-end)

Đọc thêm: Lập lịch trong ứng dụng Spring Boot với annotation @Schedule

Okay vào vấn đề thôi! Let's go!

1/ Ví dụ về Cron Expression.

0 0 12 * * ? 2021 : chạy vào lúc 12:00 tất cả các ngày trong năm 2021

0 15 10 ? * MON-FRI : chạy vào 10h 15' hàng ngày từ thứ 2 đến thứ 6

2/ Cấu trúc của một Cron Expression.

Biểu thức cron là một chuỗi gồm khoảng 7 trường thông tin để xác định chính xáclinh hoạt thời điểm (lịch chạy) cho một hàm, phương thức hay một ứng dụng nào đó.

Mỗi trường trong biểu thức có thể nhận các giá trị sau:

TÊN TRƯỜNGBẮT BUỘCKHOẢNG GIÁ TRỊ CHO PHÉPKÝ TỰ ĐẶC BIỆT CHO PHÉP
GiâyKhông0-59, – * /
Phút0-59, – * /
Giờ0-23, – * /
Ngày1-31, – * ? / L W
Tháng1-12 hoặc JAN-DEC, – * /
Thứ1-7 hoặc SUN-SAT, – * ? / L #
NămKhông, – * /

3/ Các ký tự đặc biệt có ý nghĩa gì?

"*" : Tất cả giá trị trong khoảng cho phép. Ví dụ nếu sử dụng ở trường ngày thì là hàng ngày, trường giờ thì là hàng giờ.

"?: Nhận giá trị bất kỳ 

"-"  :  Chỉ rõ khoảng thời gian chạy trong từng trường

",: Sử dụng để liệt kê giá trị. Ví dụ sử dụng SAT, SUN, MON trong trường thứ có nghĩa là chạy vào các thứ 7, chủ nhật và thứ 2

"/"  : Chỉ rõ số lần tăng. Ví dụ 0/10 trong trường phút nghĩa là cứ 10 phút chạy một lần

"L(last)" : Thường dùng để chỉ ngày cuối cùng của tháng, hoặc cuối cùng của tuần

"W(weekday)" : Ví dụ nếu bạn viết 10W thì nghĩa là nếu ngày thứ 10 trong tháng là thứ 3 thì sẽ chạy vào ngày gần ngày thứ 3 đó nhất trong tuần và chính là thứ 2.

"#: Được sử dụng để chỉ rõ thứ tự xuất hiện của một ngày trong tháng. Ví dụ 5#2 thì nghĩa là ngày thứ 5 lần thứ hai trong tháng

Note: các ký tự trong trường tháng và thứ không phân biệt hoa thường. Ví dụ SUN thì cũng là sun...

4/ Kết luận?

Hi vọng qua bài viết giúp sẽ giúp anh em hiểu về biểu thức cron và có thể tự định nghĩa nó cho các bài toán và tình huống cụ thể.

Hẹn gặp lại anh em trong các bài viết tiếp theo nha.

Tham khảo:

https://stackjava.com/uncategorized/cron-expression-la-gi-huong-dan-cu-phap-cron-expression.html

https://www.baeldung.com/cron-expressions

Thanks all ❤️❤️❤️

Không có nhận xét nào:

Được tạo bởi Blogger.