Hàng đợi cho phép bạn trì hoãn việc xử lý một tác vụ tốn thời gian, chẳng hạn như gửi e-mail, cho đến một thời điểm sau đó, do đó tăng tốc đáng kể các yêu cầu web tới ứng dụng của bạn
Tệp cấu hình hàng đợi được lưu trữ trong
Queue::push['[email protected]', ['message' => $message], 'emails'];
9. Trong tệp này, bạn sẽ tìm thấy các cấu hình kết nối cho từng trình điều khiển hàng đợi được bao gồm, chẳng hạn như cơ sở dữ liệu, Beanstalkd, IronMQ, Amazon SQS và RedisHai trình điều khiển hàng đợi đặc biệt cũng có sẵn
- Trình điều khiển hàng đợi
0 chạy một công việc ngay lập tức khi nó được xếp hàng đợi. Điều này hữu ích cho sự phát triển$date = Carbon::now[]->addMinutes[15]; Queue::later[$date, 'SendEmail', ['message' => $message]];
- Trình điều khiển hàng đợi
1 chỉ cần loại bỏ các công việc đã xếp hàng để chúng không bao giờ được thực thi$date = Carbon::now[]->addMinutes[15]; Queue::later[$date, 'SendEmail', ['message' => $message]];
Điều kiện tiên quyết về trình điều khiển
Trước khi sử dụng trình điều khiển Amazon SQS, Beanstalkd, IronMQ hoặc Redis, bạn sẽ cần cài đặt plugin Trình điều khiển
sử dụng cơ bản
Đẩy một công việc vào hàng đợi
Để đẩy một công việc mới vào hàng đợi, hãy sử dụng phương thức
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
2Queue::push['SendEmail', ['message' => $message]];
Đối số đầu tiên được cung cấp cho phương thức
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
3 là tên của lớp sẽ được sử dụng để xử lý công việc. Đối số thứ hai là một mảng dữ liệu sẽ được chuyển đến trình xử lý. Một trình xử lý công việc nên được định nghĩa như vậyclass SendEmail
{
public function fire[$job, $data]
{
//
}
}
Lưu ý rằng phương thức duy nhất được yêu cầu là
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
4, phương thức này nhận một thể hiện $date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
5 cũng như mảng của $date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
6 đã được đẩy vào hàng đợiChỉ định phương thức xử lý tùy chỉnh
Nếu bạn muốn công việc sử dụng một phương pháp khác với
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
4, bạn có thể chỉ định phương pháp đó khi đẩy công việc$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
1Chỉ định tên hàng đợi cho một công việc
Bạn cũng có thể chỉ định hàng đợi / ống mà công việc sẽ được gửi đến
Queue::push['[email protected]', ['message' => $message], 'emails'];
Trì hoãn thực hiện công việc
Đôi khi bạn có thể muốn trì hoãn việc thực hiện một queued job. Chẳng hạn, bạn có thể muốn xếp hàng một công việc sẽ gửi e-mail cho khách hàng 15 phút sau khi đăng ký. Bạn có thể thực hiện việc này bằng cách sử dụng phương pháp
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
8$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
Trong ví dụ này, chúng tôi đang sử dụng thư viện ngày Carbon để chỉ định độ trễ mà chúng tôi muốn chỉ định cho công việc. Ngoài ra, bạn có thể chuyển số giây bạn muốn trì hoãn dưới dạng số nguyên
GHI CHÚ. Dịch vụ Amazon SQS có giới hạn độ trễ là 900 giây [15 phút]
Hàng đợi và mô hình
Nếu công việc được xếp hàng đợi của bạn có một mô hình trong dữ liệu của nó, thì chỉ mã định danh cho mô hình đó sẽ được đánh số thứ tự vào hàng đợi. Khi công việc thực sự được xử lý, hệ thống xếp hàng sẽ tự động truy xuất lại phiên bản mô hình đầy đủ từ cơ sở dữ liệu
Tất cả đều hoàn toàn trong suốt đối với ứng dụng của bạn và ngăn ngừa các sự cố có thể phát sinh từ việc sắp xếp theo thứ tự các phiên bản mô hình đầy đủ
Xóa một công việc đã xử lý
Sau khi bạn đã xử lý một công việc, công việc đó phải được xóa khỏi hàng đợi, có thể thực hiện việc này thông qua phương thức
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
9 trên phiên bản $date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
5$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
7Giải phóng một công việc trở lại hàng đợi
Nếu bạn muốn giải phóng một công việc trở lại hàng đợi, bạn có thể làm như vậy thông qua phương thức
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
71$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
9Bạn cũng có thể chỉ định số giây chờ trước khi công việc được phát hành
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
0Kiểm tra số lần chạy thử
Nếu một ngoại lệ xảy ra trong khi công việc đang được xử lý, nó sẽ tự động được giải phóng trở lại hàng đợi. Bạn có thể kiểm tra số lần thử đã được thực hiện để chạy công việc bằng cách sử dụng phương pháp
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
72$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
2Đánh dấu một công việc là thất bại
Mặc dù một công việc thường được đánh dấu là không thành công nếu một ngoại lệ được đưa ra trong khi chạy công việc và các lần thử lại đã hết, bạn có thể muốn thực hiện công việc thất bại theo cách thủ công trong một số trường hợp nhất định
Để đánh dấu một công việc là thất bại, bạn có thể sử dụng phương pháp
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
73$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
4Truy cập ID công việc
Bạn cũng có thể truy cập mã định danh công việc
class SendEmail
{
public function fire[$job, $data]
{
//
}
}
0Đóng cửa hàng đợi
Thay vì đẩy một lớp công việc vào hàng đợi, bạn cũng có thể đẩy một lần đóng cho các tác vụ đơn giản cần được thực hiện ngoài chu kỳ yêu cầu hiện tại
Đẩy một bao đóng vào hàng đợi
class SendEmail
{
public function fire[$job, $data]
{
//
}
}
1GHI CHÚ. Thay vì cung cấp các đối tượng cho các Đóng hàng đợi thông qua chỉ thị
74, hãy xem xét chuyển các khóa chính và kéo lại các mô hình được liên kết từ trong công việc hàng đợi của bạn. Điều này thường tránh hành vi tuần tự hóa không mong muốn$date = Carbon::now[]->addMinutes[15]; Queue::later[$date, 'SendEmail', ['message' => $message]];
Khi sử dụng Sắt. hàng đợi đẩy io, bạn nên thực hiện thêm hàng đợi đề phòng Đóng cửa. Điểm cuối nhận thông báo hàng đợi của bạn nên kiểm tra mã thông báo để xác minh rằng yêu cầu thực sự đến từ Iron. io. Ví dụ: điểm cuối hàng đợi đẩy của bạn phải giống như.
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
75. Sau đó, bạn có thể kiểm tra giá trị của mã thông báo bí mật trong ứng dụng của mình trước khi sắp xếp lại yêu cầu hàng đợiChạy nhân viên xếp hàng
Mùa đông bao gồm một số lệnh điều khiển sẽ xử lý các công việc trong hàng đợi
Để xử lý các công việc mới khi chúng được đẩy vào hàng đợi, hãy chạy lệnh
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
76class SendEmail
{
public function fire[$job, $data]
{
//
}
}
2Khi tác vụ này đã bắt đầu, nó sẽ tiếp tục chạy cho đến khi bị dừng thủ công. Bạn có thể sử dụng trình giám sát quy trình, chẳng hạn như Người giám sát để đảm bảo rằng nhân viên xếp hàng không ngừng chạy
Queue worker process lưu trữ trạng thái ứng dụng đã khởi động trong bộ nhớ. Họ sẽ không nhận ra những thay đổi trong mã của bạn sau khi chúng được bắt đầu. Khi triển khai các thay đổi, hãy khởi động lại công nhân xếp hàng
Xử lý một công việc duy nhất
Để chỉ xử lý công việc đầu tiên trên hàng đợi, hãy sử dụng tùy chọn
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
77class SendEmail
{
public function fire[$job, $data]
{
//
}
}
3Chỉ định kết nối & Hàng đợi
Bạn cũng có thể chỉ định kết nối hàng đợi nào mà nhân viên sẽ sử dụng
class SendEmail
{
public function fire[$job, $data]
{
//
}
}
4Bạn có thể chuyển danh sách các kết nối hàng đợi được phân tách bằng dấu phẩy cho lệnh
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
78 để đặt mức độ ưu tiên của hàng đợiclass SendEmail
{
public function fire[$job, $data]
{
//
}
}
5Trong ví dụ này, các công việc trên hàng đợi
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
79 sẽ luôn được xử lý trước khi chuyển sang các công việc từ hàng đợi $date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
90Chỉ định tham số thời gian chờ công việc
Bạn cũng có thể đặt khoảng thời gian [tính bằng giây] cho mỗi công việc được phép chạy
class SendEmail
{
public function fire[$job, $data]
{
//
}
}
6Chỉ định thời lượng ngủ của hàng đợi
Ngoài ra, bạn có thể chỉ định số giây chờ trước khi bỏ phiếu cho công việc mới
class SendEmail
{
public function fire[$job, $data]
{
//
}
}
7Lưu ý rằng hàng đợi chỉ "ngủ" nếu không có công việc nào trong hàng đợi. Nếu có nhiều công việc hơn, hàng đợi sẽ tiếp tục làm việc mà không ngủ
Công nhân xếp hàng daemon
Theo mặc định,
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
76 sẽ xử lý các công việc mà không cần khởi động lại khung. Điều này giúp giảm đáng kể mức sử dụng CPU khi so sánh với lệnh $date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
92, nhưng lại tăng thêm độ phức tạp khi cần rút hàng đợi của các công việc hiện đang thực thi trong quá trình triển khai của bạnĐể khởi động queue worker ở chế độ daemon, chỉ cần bỏ cờ
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
77class SendEmail
{
public function fire[$job, $data]
{
//
}
}
8Bạn có thể sử dụng lệnh
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
94 để xem tất cả các tùy chọn có sẵnTriển khai với nhân viên hàng đợi daemon
Cách đơn giản nhất để triển khai một ứng dụng sử dụng trình xử lý hàng đợi daemon là đặt ứng dụng ở chế độ bảo trì khi bắt đầu triển khai của bạn. Điều này có thể được thực hiện bằng cách sử dụng khu vực cài đặt phụ trợ. Khi ứng dụng ở chế độ bảo trì, Winter sẽ không chấp nhận bất kỳ công việc mới nào ngoài hàng đợi, nhưng sẽ tiếp tục xử lý các công việc hiện có
Cách dễ nhất để khởi động lại công nhân của bạn là đưa lệnh sau vào tập lệnh triển khai của bạn
class SendEmail
{
public function fire[$job, $data]
{
//
}
}
9Lệnh này sẽ hướng dẫn tất cả nhân viên xếp hàng khởi động lại sau khi họ xử lý xong công việc hiện tại của mình
GHI CHÚ. Lệnh này dựa vào hệ thống bộ đệm để lên lịch khởi động lại. Theo mặc định, APCu không hoạt động đối với các lệnh CLI. Nếu bạn đang sử dụng APCu, hãy thêm
95 vào cấu hình APCu của bạn$date = Carbon::now[]->addMinutes[15]; Queue::later[$date, 'SendEmail', ['message' => $message]];
Mã hóa cho công nhân hàng đợi daemon
Daemon queue worker không khởi động lại nền tảng trước khi xử lý từng công việc. Do đó, bạn nên cẩn thận để giải phóng mọi tài nguyên nặng trước khi công việc của bạn kết thúc. Ví dụ: nếu bạn đang thực hiện thao tác hình ảnh với thư viện GD, bạn nên giải phóng bộ nhớ bằng
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
96 khi hoàn tấtTương tự, kết nối cơ sở dữ liệu của bạn có thể bị ngắt kết nối khi được sử dụng bởi trình nền chạy dài. Bạn có thể sử dụng phương pháp
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
97 để đảm bảo bạn có kết nối mớiSử dụng daemon hệ thống
Mặc dù việc chạy queue worker với tư cách là daemon cho đến hết
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
98 là tốt cho quá trình phát triển, nhưng việc sử dụng trình quản lý daemon hệ thống trên máy chủ của bạn để chạy và giám sát queue worker sẽ mang lại nhiều lợi ích như tự động khởi động lại, đăng nhập hệ thống tốt hơn và kiểm soát nhiều hơn đối với Dưới đây là hai ví dụ về trình quản lý daemon hệ thống phổ biến
hệ thống
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
99 là trình quản lý quy trình phổ biến được sử dụng trên các bản phát hành Linux gần đây hơn. Nó bao gồm một loạt các thành phần hệ thống và cung cấp khả năng kiểm soát chặt chẽ và cấu hình đơn giản. Vì nó được cài đặt sẵn trên nhiều bản phân phối Linux cho đến nay, nên không cần cài đặt thêm phần mềm nào để tận dụng lợi thế của nóĐăng ký dịch vụ queue worker
Bạn có thể đăng ký một dịch vụ mới để chạy queue worker bằng cách chạy lệnh sau với tư cách là người dùng máy chủ web trong thiết bị đầu cuối CLI của bạn
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
10Điều này sẽ mở ra một trình chỉnh sửa đầu cuối để bạn nhập cấu hình dịch vụ. Một cấu hình điển hình sẽ được tạo thành như sau
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
11Bạn nên sử dụng thư mục gốc của dự án làm định nghĩa
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
00. Định nghĩa $date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
01 phải chỉ định đường dẫn trực tiếp đến tệp thực thi PHP của bạn, lệnh và đối số $date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
76 mà bạn muốn sử dụngKhi bạn lưu cấu hình của mình, bạn sẽ cần kích hoạt nó
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
12Nếu bạn thực hiện bất kỳ thay đổi nào đối với cấu hình dịch vụ của mình, bạn phải tải lại cấu hình trong
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
99, có thể thực hiện việc này bằng cách chạy lệnh sau$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
13Bắt đầu/dừng daemon
Để bắt đầu trình nền công nhân hàng đợi của bạn, chỉ cần chạy như sau
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
14Và để dừng daemon queue worker
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
15Cuối cùng, để khởi động lại nó
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
16GHI CHÚ. Nếu bạn chạy các lệnh sau khi đăng nhập qua phiên SSH, trình nền của bạn có thể dừng ngay khi bạn đăng xuất. Bạn có thể yêu cầu hệ điều hành của mình duy trì bất kỳ quy trình nào của mình bằng cách chạy lệnh sau, thay thế trình giữ chỗ
04 bằng người dùng đang chạy dịch vụ.$date = Carbon::now[]->addMinutes[15]; Queue::later[$date, 'SendEmail', ['message' => $message]];
05$date = Carbon::now[]->addMinutes[15]; Queue::later[$date, 'SendEmail', ['message' => $message]];
Kiểm tra trạng thái của daemon
Nếu bạn muốn kiểm tra trạng thái nhân viên xếp hàng của mình, bạn có thể chạy như sau
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
17Theo mặc định,
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
99 sẽ hiển thị dịch vụ của bạn có hoạt động hay không và cung cấp một đoạn nhật ký nhỏ cho dịch vụBạn cũng có thể lấy toàn bộ nhật ký bằng cách truy vấn
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
07$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
18Người giám sát
Người giám sát là người giám sát quy trình cho hệ điều hành Linux và sẽ tự động khởi động lại quy trình
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
76 của bạn nếu nó không thành công. Để cài đặt Trình giám sát trên Ubuntu, bạn có thể sử dụng lệnh sau$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
19Cấu hình giám sát viên
Các tệp cấu hình giám sát thường được lưu trữ trong thư mục
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
09. Trong thư mục này, bạn có thể tạo bất kỳ số lượng tệp cấu hình nào hướng dẫn người giám sát cách giám sát các quy trình của bạn. Ví dụ: hãy tạo tệp $date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
20 bắt đầu và theo dõi quy trình $date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
76Queue::push['[email protected]', ['message' => $message], 'emails'];
0Trong ví dụ này, chỉ thị
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
22 sẽ hướng dẫn Người giám sát chạy 8 quy trình $date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
76 và giám sát tất cả chúng, tự động khởi động lại chúng nếu chúng không thành công. Tất nhiên, bạn nên thay đổi phần $date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
76 của chỉ thị lệnh để phản ánh kết nối hàng đợi mong muốn của bạn. Chỉ thị $date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
25 nên được thay đổi thành tên của người dùng có quyền chạy lệnhNgười giám sát bắt đầu
Khi tệp cấu hình đã được tạo, bạn có thể cập nhật cấu hình Người giám sát và bắt đầu các quy trình bằng cách sử dụng các lệnh sau
Queue::push['[email protected]', ['message' => $message], 'emails'];
1Để biết thêm thông tin về Người giám sát, hãy tham khảo tài liệu Người giám sát
công việc thất bại
Vì mọi thứ không phải lúc nào cũng diễn ra theo kế hoạch nên đôi khi các công việc đã xếp hàng của bạn sẽ không thành công. Đừng lo lắng, điều tốt nhất xảy ra với chúng ta. Có một cách thuận tiện để chỉ định số lần tối đa một công việc nên được thử. Sau khi một công việc vượt quá số lần thử này, nó sẽ được chèn vào bảng
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
26. Tên bảng công việc thất bại có thể được cấu hình thông qua tệp cấu hình Queue::push['[email protected]', ['message' => $message], 'emails'];
9Bạn có thể chỉ định số lần tối đa một công việc sẽ được thực hiện bằng cách sử dụng công tắc
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
28 trên lệnh $date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
76Queue::push['[email protected]', ['message' => $message], 'emails'];
2Nếu bạn muốn đăng ký một sự kiện sẽ được gọi khi công việc xếp hàng không thành công, bạn có thể sử dụng phương thức
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
40. Sự kiện này là một cơ hội tuyệt vời để thông báo cho nhóm của bạn qua e-mail hoặc dịch vụ bên thứ ba khácQueue::push['[email protected]', ['message' => $message], 'emails'];
3Bạn cũng có thể định nghĩa phương thức
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
41 trực tiếp trên lớp công việc xếp hàng, cho phép bạn thực hiện các hành động cụ thể của công việc khi xảy ra lỗiQueue::push['[email protected]', ['message' => $message], 'emails'];
4Mảng ban đầu của
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
6 cũng sẽ tự động được chuyển vào phương thức bị lỗiThử lại các công việc thất bại
Để xem tất cả các công việc thất bại của bạn, bạn có thể sử dụng lệnh Artisan
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
43Queue::push['[email protected]', ['message' => $message], 'emails'];
5Lệnh
$date = Carbon::now[]->addMinutes[15];
Queue::later[$date, 'SendEmail', ['message' => $message]];
43 sẽ liệt kê ID công việc, kết nối, hàng đợi và thời gian lỗi. ID công việc có thể được sử dụng để thử lại công việc không thành công. Chẳng hạn, để thử lại một công việc không thành công có ID là 5, lệnh sau sẽ được đưa ra