Tôi có một công việc xếp hàng trong Laravel mà không xảy ra theo thời gian vì một API bên ngoài bị lỗi do tải cao. Vấn đề là các lựa chọn của tôi dường như có Hàng đợi Laravel tiếp tục búa API với các yêu cầu cho đến khi nó thành công hoặc yêu cầu nó dừng lại sau khi X số yêu cầu.Làm cách nào để tạo sự chậm trễ giữa các lần thử xếp hàng thất bại trong Laravel?
Có cách nào để tôi, dựa trên cách công việc thất bại, hãy yêu cầu nó thử lại sau 5 phút thay vì tiếp tục vứt đi?
Tôi muốn sử dụng trình xử lý xếp hàng sẵn có, nhưng chức năng thử lại dường như không được xây dựng để xử lý các tình huống thực tế của sự cố thất bại. Tôi nghĩ rằng nhiều lý do thất bại trong công việc sẽ không được giải quyết bằng cách ngay lập tức thử lại.
Cảm ơn, tôi đã hiểu nhầm về việc phát hành công việc. Ngoài ra, bạn đã tìm thấy hàm delete() ở đâu? Điều đó dường như không được ghi lại. Tôi hy vọng rằng có một cách hỗ trợ để loại bỏ công việc bằng cách đặt nó vào bảng công việc thất bại. – Citizen
Tôi tìm thấy nó trong nguồn: https://github.com/laravel/framework/blob/5.1/src/Illuminate/Queue/InteractsWithQueue.php –
Giới thiệu về việc thêm chúng vào bảng công việc thất bại. Tôi không hoàn toàn chắc chắn cách thức này hoạt động nhưng tôi tin rằng bạn có thể phải (lại) ném ngoại lệ để nó cũng được xử lý bởi công nhân xếp hàng. –