Laravel Task Scheduling & Cron Jobs: Lập lịch tác vụ trong Laravel
5:00 read
Task Scheduling Là Gì?
Task scheduling là quá trình tự động hóa các tác vụ lặp lại để chạy vào thời gian hoặc khoảng thời gian cụ thể mà không cần can thiệp thủ công. Các trường hợp sử dụng phổ biến bao gồm:
- Gửi email báo cáo theo lịch
- Dọn dẹp các bản ghi cũ trong database
- Tạo báo cáo phân tích hàng ngày
- Backup database
- Xử lý các tác vụ hàng loạt (batch operations)
- Đồng bộ dữ liệu với API bên ngoài
Trong quá khứ, các developer thường sử dụng cron (bộ lập lịch job dựa trên thời gian trong hệ thống Unix-like) để schedule các task, đòi hỏi quyền truy cập server trực tiếp và quản lý cron entry thủ công.
Hiểu Về Cron Jobs
Trước khi tìm hiểu về hệ thống scheduling của Laravel, hãy hiểu những kiến thức cơ bản về cron.
Cú Pháp Cron
Một cron expression bao gồm năm trường thời gian:
* * * * *
│ │ │ │ │
│ │ │ │ └─── Ngày trong tuần (0-7, Chủ nhật = 0 hoặc 7)
│ │ │ └───── Tháng (1-12)
│ │ └─────── Ngày trong tháng (1-31)
│ └───────── Giờ (0-23)
└─────────── Phút (0-59)
Các Ví Dụ Cron Phổ Biến
| Expression | Mô Tả |
|---|---|
* * * * * |
Mỗi phút |
0 * * * * |
Mỗi giờ |
0 0 * * * |
Hàng ngày lúc nửa đêm |
0 0 * * 0 |
Hàng tuần vào Chủ nhật |
0 0 1 * * |
Hàng tháng vào ngày 1 |
*/5 * * * * |
Mỗi 5 phút |
0 9-17 * * 1-5 |
Các ngày trong tuần từ 9 AM đến 5 PM |
Hạn Chế Của Cron Truyền Thống
- Task không được lưu trong source control
- Yêu cầu quyền SSH để quản lý
- Không có khả năng hiển thị định nghĩa task
- Khó test ở local
- Không có xử lý lỗi tích hợp sẵn
- Cú pháp phức tạp cho logic điều kiện
Yêu cầu đăng nhập
Vui lòng đăng nhập để truy cập nội dung này
Additional Resources
Course Guide
Comprehensive PDF guide with examples
GitHub Repository
Example code for all lessons
Discussion
Have a question about this lesson? Post it here and get answers from instructors and peers.
