Site logo

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.