Một vài ghi chú về Cron Job

Cron Job là gì?

Cron Job là một chức năng giúp lên lịch tự động thực hiện một số công việc nào đó. Việc này được cấu hình thông qua biểu thức Cron

Cấu trúc biểu thức Cron

Thông thường một biểu thức Cron có từ 5-7 ký tự

5 : Không có Second, Không có Year

6 : Có Second, Không Year

7 : Có đủ



* : Bất kỳ giá trị nào

- : Khoảng giá trị

, : Danh sách các giá trị

/ : Bước nhảy

? : Không quan tâm giá trị ( Day of Month, Day of Week)

# : Thứ mấy của (6#3 : Ngày thứ 6 thứ 3 của tháng) ( Day of Week)

L : Cuối cùng của (6L : Ngày thứ 6 cuối của tháng) ( Day of Month, Day of Week)

W : Weekday ( Day of Month)



Một số biểu thức hay dùng

0 30 0 * * ? : 0h30 hàng ngày

0 15 10 ? * * = 0 15 10 * * ? = 0 15 10 * * ? * : 10h15 hàng ngày

*/5 * * * * * : Mỗi 5s

0 15 10 ? * MON-FRI : 10h15 từ thứ 2 đến thứ 6

0 15 10 L * ? : 10h15 ngày cuối của mỗi tháng


Công cụ giúp kiểm tra biểu thức

http://www.cronmaker.com


Thư viện C#

Thư viện giúp parse các biểu thức Cron

Cronos

https://github.com/HangfireIO/Cronos


NCrontab

https://github.com/atifaziz/NCrontab


Thư viện giúp chạy các background jobs

Coravel

https://docs.coravel.net

https://github.com/jamesmh/coravel


Quartz.NET

https://www.quartz-scheduler.net

https://github.com/quartznet/quartznet


Hangfire

https://www.hangfire.io

https://github.com/HangfireIO/Hangfire


FluentScheduler

https://github.com/fluentscheduler/FluentScheduler


Worker Service

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/host/hosted-services


Tham khảo thêm

https://topdev.vn/blog/tim-hieu-ve-cau-hinh-cron-job 

http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.html

https://medium.com/@tushar0618/cron-expression-tutorial-721d85e4c2a7


Tiếp tục cập nhật ...