Mam zadanie w kolejce w Laravel, które nie działa od czasu do czasu z powodu awarii zewnętrznego interfejsu API z powodu dużego obciążenia. Problem polega na tym, że moje wybory sprawiają, że kolejka Laravel kontynuuje udoskonalanie interfejsu API z prośbami, dopóki nie powiedzie się, lub przestanie po X liczbie żądań.Jak mogę utworzyć opóźnienia między nieudanymi próbami zadań w kolejce w Laravel?
Czy jest jakiś sposób, abym w oparciu o to, w jaki sposób zawiodła praca, powiedz, aby spróbować ponownie za 5 minut zamiast kontynuować walenie?
Chcę użyć wbudowanej procedury obsługi kolejki, ale funkcja ponawiania nie wydaje się być budowana w celu obsługi rzeczywistych scenariuszy awarii. Sądzę, że wiele powodów niepowodzenia pracy nie zostałoby rozwiązanych przez natychmiastową ponowną próbę.
Dzięki, miałem nieporozumienie co do tego, co robi praca. Również, gdzie znalazłeś funkcję delete()? To nie wydaje się być udokumentowane. Mam nadzieję, że istnieje obsługiwany sposób usunięcia zadania poprzez umieszczenie go w tabeli zakończonych niepowodzeniem. – Citizen
Znalazłem go w źródle: https://github.com/laravel/framework/blob/5.1/src/Illuminate/Queue/InteractsWithQueue.php –
Informacje o dodawaniu ich do tabeli zakończonych niepowodzeniem. Nie jestem do końca pewien, jak to działa, ale myślę, że być może trzeba będzie (ponownie) rzucić wyjątek, aby był on również przetwarzany przez moduł kolejki. –