Geplande taken (cron)
WordPress leunt op geplande taken — het publiceren van geplande berichten, het opschonen van transients, het draaien van plugin- en back-uptaken, en meer. Op SuperSpace worden de geplande taken van WordPress al voor je geregeld, en je kunt ook je eigen geplande commando's toevoegen als je die nodig hebt.
WordPress-cron wordt voor je geregeld
Standaard draait WordPress zijn planner (WP-Cron) door wp-cron.php te triggeren bij
het laden van pagina's door bezoekers. Dat is onbetrouwbaar: op een site met weinig verkeer
worden geplande taken te laat of helemaal niet uitgevoerd, en op een drukke site draait het
extra werk bij elke aanvraag.
SuperSpace vermijdt beide problemen. Het schakelt de trigger bij het laden van pagina's
uit en draait wp-cron.php in plaats daarvan vanuit een echte systeem-cron volgens een
vast schema (een paar keer per uur). Het resultaat is dat je geplande berichten en plugintaken
op tijd draaien, ongeacht het verkeer — zonder dat je iets hoeft in te stellen.
Sites met meerdere containers
Als je site over meer dan één container draait, zorgt SuperSpace ervoor dat de WordPress-cron op slechts één plek draait, zodat geplande taken niet twee keer worden uitgevoerd.
Je eigen geplande taken toevoegen
Als je je eigen commando's volgens een schema wilt draaien — een onderhoudsscript, een
WP-CLI-commando, een aanroep naar een externe service — voeg je ze toe aan het
crontab-bestand in de root van het volume van je site:
/home/sftpuser/apps/{{ container name }}/wordpress/crontab
Je bereikt het met elke methode voor bestandstoegang — SFTP, SSH, de File Manager of Cloud Shell. Zie Toegang tot je bestanden voor hoe je verbinding maakt.
-
Open (of maak) het
crontab-bestand in de root van het volume. -
Voeg één regel per taak toe, in systeem-cron-formaat: de vijf schemavelden, dan de gebruiker om als te draaien (gebruik
www-data), dan het commando. Ter referentie: de eigen WordPress-cron-regel van SuperSpace ziet er zo uit:
17,47 * * * * www-data /usr/bin/curl http://localhost/wp-cron.php?doing_wp_cron
Een aangepaste taak om elke nacht om 3:15 uur verlopen transients op te schonen:
15 3 * * * www-data wp --path=/var/www/html/wordpress transient delete --expired
- Herstart de site. Open in het dashboard de Instellingen van de site en gebruik de
actie Herstarten. SuperSpace leest het
crontab-bestand wanneer de site opstart, dus nieuwe of gewijzigde taken worden van kracht na een herstart.
Twee dingen waar mensen over struikelen
- Het gebruikersveld is verplicht. Elke regel heeft een gebruiker (
www-data) nodig tussen het schema en het commando — die weglaten is de meest voorkomende reden dat een taak stilletjes niet draait. - Commando's draaien binnen de site-container. Paden zijn relatief ten opzichte van
die container, niet ten opzichte van je SFTP-login — WordPress staat daar bijvoorbeeld in
/var/www/html/wordpress, dus geef dat door aanwp --path=…. Cron draait ook met een minimale omgeving, dus gebruik volledige paden naar binaries als een commando niet wordt gevonden (de eigen regel van SuperSpace roept/usr/bin/curlaan).
Laat de WordPress-cron-regel staan
Je taken worden toegevoegd naast de WordPress-cron van SuperSpace — het kan zijn dat je
SuperSpace zijn eigen wp-cron-regel aan dit bestand ziet toevoegen. Laat die staan; door
deze te verwijderen zouden de geplande taken van WordPress niet meer draaien.
Een aangepaste taak verwijderen
Verwijder de regel uit het crontab-bestand en herstart de site. Het verwijderen van je
eigen regels heeft geen invloed op de ingebouwde WordPress-cron.
Verder lezen
- Toegang tot je bestanden — SFTP, SSH, de File Manager en Cloud Shell.
- Aangepaste serverconfiguratie — overschrijf
Nginx- en PHP-FPM-instellingen in hetzelfde
nginx/-gebied van het volume.