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 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:
- Klik op Worker toevoegen.
- Vul de instellingen hieronder in.
- 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
.envherstart 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.