🎯 Mục tiêu bài học
Trong các bài trước, chúng ta đã làm việc trực tiếp với:
Controller
Model
Event
Listener
Observer
Notification
Mail
Tuy nhiên, có một vấn đề:
Nếu một công việc mất nhiều thời gian, chúng ta có muốn người dùng phải chờ cho đến khi công việc hoàn thành hay không?
Ví dụ:
Người dùng tạo bài viết
↓
Laravel lưu bài viết
↓
Gửi email
↓
Tạo thumbnail
↓
Tạo thông báo
↓
Ghi log
↓
Trả Response
Nếu tất cả đều chạy ngay trong HTTP Request, người dùng có thể phải chờ rất lâu.
Laravel Queue giải quyết vấn đề này bằng cách đưa những công việc cần xử lý sau vào hàng đợi.
Mô hình:
HTTP Request
│
▼
Lưu dữ liệu
│
▼
Dispatch Job
│
├──────────────► Response
│
▼
Queue
│
▼
Worker
│
▼
Xử lý công việc



