Beheer
Jobs en de scheduler
De scheduler in een container of op een server, onderhoudstaken en controles.
Elke Nimbly-site heeft een draaiende scheduler nodig, ook zonder eigen taken: die verwerkt de jobwachtrij en doet het onderhoud van het framework. Deze pagina gaat over het draaien ervan; Werk op de achtergrond gaat over het schrijven van jobs en taken.
In een container
Het containerimage draait de scheduler zelf elke minuut. Met meerdere containers op één gedeeld volume zorgt een lock ervoor dat één container het werk doet.
Op een eigen server
Installeer de scheduler één keer per server, registreer elke site erop en installeer de cronregel:
sudo php core/cli/nimbly.php scheduler:install
sudo php core/cli/nimbly.php scheduler:project:add my-site /var/www/my-site
sudo php core/cli/nimbly.php scheduler:cron:install --user=www-data
Eén cronregel bedient elke geregistreerde site. Elke minuut start hij twee workers per site, één voor de jobwachtrij en één voor het schema van de site, zodat een lange taak op de ene site een andere nooit ophoudt. Op een server draaien maximaal vijf workers tegelijk, in te stellen met NIMBLY_SCHEDULER_MAX_CONCURRENCY. De uitvoer gaat naar /var/log/nimbly-scheduler.log, dat wekelijks wordt geroteerd.
php core/cli/nimbly.php scheduler:project:list
sudo -u www-data php core/cli/nimbly.php scheduler:run --dry-run
php core/cli/nimbly.php scheduler:cron:status
Onderhoud dat altijd draait
| Taak | Elke |
|---|---|
| Jobs in de wachtrij verwerken | minuut |
| Verlopen sessies verwijderen | 30 minuten |
| Requeststatistieken archiveren | uur |
| Afgeronde jobs ouder dan 30 dagen verwijderen | dag |
| Geschiedenis ouder dan 90 dagen verwijderen | dag |
| Agentruns ouder dan 30 dagen verwijderen | dag |
Het eigen schema van een site voegt taken toe; het kan deze niet weghalen. Een project kan vervangen hoe een onderhoudscommando werkt door hetzelfde commando te definiëren in ext/cli/commands.php.
Controleren
./nimbly schedule:status
meldt de laatste geslaagde run van elke onderhoudstaak en stopt met een fout als een taak is mislukt, nooit heeft gedraaid of te laat is. Het dashboard van de admin toont hetzelfde onder Needs attention. Controleer het na elke deploy: een cronregel alleen bewijst niet dat het werk draait.
De wachtrij
/nb-admin/jobs toont jobs in de wachtrij, lopende, afgeronde en mislukte jobs, met de laatste fout van elk. Run due jobs now verwerkt de wachtrij meteen; afgeronde jobs en definitief mislukte jobs worden na 30 dagen opgeruimd. ./nimbly jobs:run verwerkt vanaf de command line één job, ./nimbly jobs:run 25 tot 25.