Szukaj…


Wprowadzenie

Kolejki umożliwiają aplikacji rezerwowanie fragmentów pracy, które są czasochłonne, aby obsłużyć je proces działający w tle.

Przypadków użycia

Na przykład, jeśli wysyłasz wiadomość e-mail do klienta po rozpoczęciu zadania, najlepiej natychmiast przekierować użytkownika do następnej strony, umieszczając w kolejce wiadomość e-mail do wysłania w tle. Przyspieszy to ładowanie następnej strony, ponieważ wysłanie wiadomości e-mail może czasem potrwać kilka sekund lub dłużej.

Innym przykładem może być aktualizacja systemu zapasów po sprawdzeniu przez klienta zamówienia. Zamiast czekać na zakończenie wywołań interfejsu API, co może potrwać kilka sekund, możesz od razu przekierować użytkownika do strony powodzenia transakcji, a kolejki wywołań interfejsu API będą odbywać się w tle.

Konfiguracja sterownika kolejki

Każdy ze sterowników kolejek Laravela jest konfigurowany z pliku config/queue.php . Sterownik kolejki to moduł obsługi służący do zarządzania uruchamianiem zadania w kolejce, określania, czy zadania powiodły się, czy niepowodzenia, i ponawiania próby, jeśli jest skonfigurowany do tego.

Po wyjęciu z pudełka Laravel obsługuje następujące sterowniki kolejek:

sync

Synchronizacja lub synchronizacja to domyślny sterownik kolejki, który uruchamia zadanie w kolejce w ramach istniejącego procesu. Po włączeniu tego sterownika skutecznie nie ma kolejki, ponieważ zadanie w kolejce uruchamia się natychmiast. Jest to przydatne do celów lokalnych lub testowych, ale wyraźnie nie jest zalecane w przypadku produkcji, ponieważ usuwa korzyść z wydajności związaną z konfigurowaniem kolejki.

database

Ten sterownik przechowuje kolejkowane zadania w bazie danych. Przed włączeniem tego sterownika należy utworzyć tabele bazy danych do przechowywania zadań w kolejce i zadań zakończonych niepowodzeniem:

php artisan queue:table
php artisan migrate

sqs

Ten sterownik kolejki używa usługi Amazon Simple Service Queue do zarządzania kolejkami zadań. Przed włączeniem tego zadania należy zainstalować następujący pakiet kompozytora: aws/aws-sdk-php ~3.0

Pamiętaj również, że jeśli planujesz używać opóźnień dla zadań w kolejce, Amazon SQS obsługuje maksymalnie 15 minut.

iron

Te sterowniki kolejki używają żelaza do zarządzania kolejkami zadań.

redis

Ten sterownik kolejki używa instancji Redis do zarządzania kolejkami zadań. Przed użyciem tego sterownika kolejki należy skonfigurować kopię Redis i zainstalować następującą zależność kompozytora: predis/predis ~1.0

beanstalkd

Ten sterownik kolejki używa instancji Beanstalk do zarządzania kolejkami zadań. Przed użyciem tego sterownika kolejki należy skonfigurować kopię Beanstalk i zainstalować następującą zależność kompozytora: pda/pheanstalk ~3.0

null

Podanie wartości null jako sterownika kolejki spowoduje odrzucenie wszystkich zadań w kolejce.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow