Een wachtrij (queue) is een lijst met taken die een applicatie op de achtergrond afhandelt, los van wat de gebruiker op dat moment doet. Denk aan het versturen van e-mails, het genereren van een PDF of het synchroniseren met een ander systeem.
Zonder wachtrij moet een gebruiker wachten tot zo'n taak klaar is voordat de pagina reageert. Met een wachtrij gaat de taak in de rij, krijgt de gebruiker direct antwoord en verwerkt een apart proces het werk zodra er capaciteit is. Mislukt een taak, bijvoorbeeld omdat een extern systeem even onbereikbaar is, dan kan die automatisch opnieuw worden geprobeerd.
Voordelen van een wachtrij zijn onder andere:
- Een snelle applicatie, ook als er zwaar werk moet gebeuren
- Automatisch opnieuw proberen als een taak mislukt
- Pieken opvangen zonder dat de applicatie vastloopt
- Aparte wachtrijen per soort werk, zodat een grote mailing de betalingen niet ophoudt
Bij NoardCode gebruiken we in vrijwel elke Laravel-applicatie wachtrijen, meestal met Redis en Laravel Horizon. Met Horizon houden we in de gaten hoeveel taken er klaarstaan, hoe lang ze duren en welke mislukken.