Naar de inhoud
Deploy
Blader door de documentatie

Laravel queue workers, scheduler en Node.js-processen

Draai Laravel queue workers onder Supervisor, zet de scheduler aan met elke minuut schedule:run en houd een Node.js-app draaiende met Vimonto Deploy.

Bekijk als Markdown Bijgewerkt op 7 oktober 2026

De pagina Wachtrijen en scheduler van een Laravel-site draait de processen die je app naast het beantwoorden van webrequests nodig heeft: queue workers die jobs op de achtergrond afhandelen, en de Laravel-scheduler. Voor een Next.js- of Nuxt-site heet dezelfde pagina Processen en houdt die je Node.js-app draaiende.

Elke worker en elk proces draait onder Supervisor op de server, die het bij het opstarten start en herstart wanneer het stopt. Vimonto Deploy herstart ze na elke deploy, zodat ze altijd je nieuwste code draaien.

De pagina Wachtrijen en scheduler met de planner aangezet en twee draaiende queue workers
Queue workers en de scheduler van een Laravel-site

De pagina is er voor Laravel-, Statamic-, Next.js- en Nuxt-sites. Voor processen die niet bij één site horen, gebruik je de pagina's processen en planner van de server.

De Laravel-scheduler aanzetten

De scheduler van Laravel draait de taken die je in je app definieert (routes/console.php of de console kernel). Daarvoor is één cron-regel nodig die elke minuut draait:

* * * * * php8.4 artisan schedule:run

Klik onder Planner op Aanzetten. Vimonto Deploy voegt de cron-regel voor de site toe; die draait als de gebruiker van de site in de live release. De status verandert in Aan zodra hij er staat. Klik op Uitzetten om hem te verwijderen. De uitvoer van elke run wordt bewaard in een logboek: open de pagina planner van de server en klik op Logboek naast de taak met Via Planner.

De scheduler staat ook als Planner in het menu sitefuncties; beide zetten hetzelfde aan of uit.

Een queue worker toevoegen

Een queue worker draait php artisan queue:work en verwerkt de jobs die je app dispatcht. Zo voeg je er een toe:

  1. Klik op Worker toevoegen.
  2. Vul de instellingen hieronder in.
  3. Klik op Toevoegen.
Instelling Standaard Wat het doet
Verbinding redis (of database op een server zonder Redis) De queue-verbinding uit config/queue.php.
Wachtrij default De wachtrijen die worden verwerkt, gescheiden door komma's, op volgorde van prioriteit, zoals high,default.
Processen 1 Hoeveel kopieën van de worker naast elkaar draaien (tot 50).
Timeout (seconden) 60 Hoe lang één job mag draaien voordat hij wordt gestopt (--timeout).
Pogingen 3 Hoe vaak een mislukkende job wordt geprobeerd (--tries).
Wachten als leeg (seconden) 3 Hoe lang er wordt gewacht als de wachtrij leeg is (--sleep).
Herstarten na (seconden) 3600 Na deze tijd stopt de worker en wordt hij opnieuw gestart (--max-time).
Geheugen (MB) 256 De worker herstart als hij meer geheugen gebruikt (--memory).

De worker draait als de gebruiker van de site in de live release van de site, met de PHP-versie van de site:

php8.4 /home/vimonto/shop.example.com/current/artisan queue:work redis --queue=default --sleep=3 --tries=3 --timeout=60 --max-time=3600 --memory=256

Bij een monorepo draait de worker in de hoofdmap van de site binnen de release, bijvoorbeeld /home/vimonto/shop.example.com/current/backend/artisan met hoofdmap /backend. Hetzelfde geldt voor de planner en de processen van sitefuncties zoals Horizon.

Als een worker wordt gestopt, geeft Supervisor een lopende job zijn timeout plus vijf seconden om af te ronden voordat hij wordt gestopt.

Workers herstarten na elke deploy

Als een deploy live gaat, voert Vimonto Deploy php artisan queue:restart uit. Elke worker maakt zijn huidige job af en stopt, en Supervisor start hem opnieuw op de nieuwe release. Je hoeft dit niet aan je deployscript toe te voegen.

Zien of workers draaien

Elke worker toont zijn naam, commando, aantal processen en de actuele status uit Supervisor: Bezig, Start op, Wordt gestopt, Gestopt of Mislukt. Klik op Status vernieuwen om de status opnieuw op te halen.

Voor elke draaiende worker kun je:

  • Herstarten. Na een wijziging in de .env herstart de optie Workers herstarten bij het opslaan elke worker van de site voor je.
  • Stoppen, en later weer Starten. Een gestopte worker blijft gestopt tot je hem start of de server herstart.
  • Log bekijken, wat de processenpagina van de server opent met de uitvoer van de worker.
  • Verwijderen. De processen stoppen en worden niet opnieuw gestart.

Workers van sitefuncties

Sommige sitefuncties draaien eigen processen, zoals Horizon, Reverb, Pulse, Inertia SSR en Nightwatch. Ze staan in de lijst met een badge Via …, bijvoorbeeld Via Horizon. Je ziet hier hun status en kunt ze herstarten, maar wijzigen of verwijderen doe je alleen via de functie in de siteheader.

Een Node.js-app draaien

Voor Next.js- en Nuxt-sites heet de pagina Processen. Nginx stuurt requests door naar de app op de poort van de site (te zien in het overzicht van de site en in te stellen onder site-instellingen als Poort van je app), dus je app moet draaien en op die poort luisteren.

Dat hoef je niet zelf in te stellen: bij het aanmaken van de site voegt Vimonto Deploy een proces toe dat je app start met PORT op de poort van de site. Het draait in de live release van de site (in de hoofdmap van een monorepo) als de gebruiker van de site.

Framework Proces Commando, voor poort 3000
Next.js Next.js-app env PORT=3000 npm run start (met je pakketbeheerder)
Nuxt Nuxt-app env PORT=3000 node .output/server/index.mjs

Tot de eerste deploy is er nog geen code om te starten. Het proces staat dan op Wacht, met Start bij de eerste deploy. De eerste deploy zet het op de server en start het; een proces dat niet kon starten, wordt bij de volgende deploy opnieuw geprobeerd. Wijzig je de poort onder site-instellingen, dan verhuist het proces mee naar de nieuwe poort.

Supervisor herstart de app als die crasht, en Vimonto Deploy herstart hem na elke deploy, zodat hij de nieuwe build draait.

Wil je nog iets anders draaien, of je app op je eigen manier starten? Klik op Proces toevoegen, typ het Commando (het draait in de live release van de site, in de hoofdmap van een monorepo, als de gebruiker van de site), stel het aantal Processen in en klik op Toevoegen. Vervang je het eigen proces van de app, verwijder dat dan, zodat er geen twee kopieën om dezelfde poort strijden.

Veelgestelde vragen

Heb ik Supervisor nodig voor Laravel-queues?

Ja, een queue worker is een langlopend proces dat opnieuw moet worden gestart als het stopt. Vimonto Deploy configureert Supervisor voor je; elke worker die je toevoegt is een Supervisor-programma op de server.

Gebruik ik Horizon of queue workers?

Gebruik Horizon als je app Redis-queues gebruikt en je het dashboard, de statistieken en de automatische balancering wilt. Zet het aan in het menu sitefuncties. Gebruik gewone queue workers voor de database-driver of als je Horizon niet nodig hebt. Draai ze niet allebei op dezelfde wachtrijen.

Waarom draait mijn geplande taak niet?

Controleer of de planner op Aan staat en of de taak in je app is gedefinieerd. Geplande taken draaien in de live release, dus een site die nog niet is gedeployed draait niets. Het Logboek op de pagina planner van de server laat zien wat schedule:run bij de laatste runs schreef.

Houden workers de oude PHP-versie als ik wissel?

Ja. Workers en de scheduler houden de PHP-versie waarmee ze zijn aangemaakt. Voeg ze opnieuw toe nadat je de PHP-versie van de site hebt gewijzigd onder site-instellingen.