Cron job là gì ? Cron expression là gì?
NỘI DUNG BÀI VIẾT
Cron Job là chức năng dùng để thực thi định kì một câu lệnh nào đó trong một khoảng thời gian được xác định trước bởi người lập trình viên. Ngoài ra Cron Job còn có thể hiểu đơn giản đó là một chức năng lên lịch tự động để thực hiện một công việc nào đó theo một chu kỳ nhất định.
Thành phần của Cron Job
Thông thường Cron Jobs sẽ có ba thành phần như sau:
- Script: kịch bản thực hiện
- Commnand: các câu lệnh được thực thi
- Các hoạt động hoặc output của script, phụ thuộc vào những gì script được gọi ra và thực thi.
Lợi ích của việc sử dụng Cron Job
Với việc sử dụng Cron Job các bạn sẽ có được một số tác dụng như sau:
- Tự động cập nhật lại dữ liệu của trang web
- Tự động backup lại dữ liệu
- Tiết kiệm được lượng lớn thời gian thực thi các lệnh lấy dữ liệu từ máy chủ
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:
6 trường đầu tiên trong bảng là bắt buộc phải có trong Cron Expression và trường Year cuối cùng là không bắt buộc. Và trong Spring thì biểu thức Cron Job cũng chỉ có 6 trường đầu tiên.
Ý nghĩa các ký tự trong Cron Expression
Ký tự | Ý nghĩa |
* | được sử dụng cho tất cả các trường ở trên, nhận mọi giá trị. |
? | nhận một giá trị bất kỳ được sử dụng ở trường day of month hoặc day of week. |
– | được sử dụng để chỉ rõ khoảng thời gian sẽ được chạy ví dụ nếu để trong Hours là 8-10 thì nó sẽ chạy từ 8 giờ cho tới 10 giờ. |
, | được sử dụng để liệt kê các giá trị |
/ | sử dụng để chỉ rõ số lần tăng. Ví dụ */10: 10 giây chạy 1 lần |
L | L là viết tắt của Last nếu được sử dụng trong trường Day Of Month thì có nghĩa là ngày cuối cùng của tháng và còn nếu dùng cho trường Day Of Week thì có nghĩa là ngày cuối cùng của tuần. |
W | sử dụng để chỉ rõ ngày trong tuần gần nhất với ngày truyền vào |
# | sử dụng để chỉ rõ thứ tự của ngày trong tháng. |
Một số ví dụ về Cron Expression
Biểu thức | Ý nghĩa |
0 0 12 * * ? | Chạy lúc 12 giờ trưa hàng ngày |
0 15 10 ? * * | Chạy lúc 10 giờ 15 phút sáng hàng ngày |
0 15 10 * * ? 2020 | Chạy lúc 10 giờ 15 phút sáng hàng ngày vào năm 2020 |
0 0/5 14 * * ? | Chạy 5 phút một lần bắt đầu vào lúc 2 giờ chiều và kết thúc lúc 2 giờ 55 phút chiều |
0 15 10 ? * MON-FRI | Chạy lúc 10 giờ 15 phút các ngày thứ 2 đến thứ 6 |
0 15 10 L * ? | Chạy lúc 10 giờ 15 phút sáng vào ngày cúng cùng của tháng. |
Leave a Reply