Maak kennis met de nieuwe Joomla! Taakplanner
De taakplanner (geplande taken) van Joomla is een nieuwe toevoeging aan de (core) basisfunctionaliteiten van Joomla! 4.1. Het Joomla ontwikkelingsteam heeft het aan de core toegevoegd om repetitieve taken te automatiseren die je misschien liever niet uitvoert.
Je kunt de taakplanner gebruiken voor een breed scala aan onderhouds- en rapportagetaken, en het draait op een Plugin-systeem dat kan worden toegevoegd en aangepast. De taakplanner voert de taak gedetailleerd in een Plugin uit via een cron job vanuit de Joomla admin. Wat is een cron job? vraag je. Daar gaan we nu dieper op in.
Dit artikel is overgenomen uit de Joomla Community Magazine, zie ook onderaan bron vermelding.
Maar de website Magazine Joomla
Zelf heb de stappen erbij vermeld die je dient te doorlopen om een Geplande taak aan te maken.
(Klik op de afbeelding voor een vergroting).
Wat is een Cron Job?
Heb je ooit een Joomla component geïnstalleerd om er vervolgens achter te komen dat je een cron job moet instellen om het volledig te laten werken op het controlepaneel van je hosting? Wij ook.
Een cron job wordt gebruikt om een deel van de werking van een component te automatiseren. Dit is meestal een repetitieve taak die je liever niet wilt doen! Daarom vergeten veel website-eigenaren deze taken uit te voeren. Als gevolg daarvan is hun website misschien niet zo goed als hij zou kunnen zijn.
Cronjobs worden meestal gebruikt om e-mailwachtrijen in nieuwsbriefsystemen te verwerken, of om e-commerce bestellingen te synchroniseren met een leveringsplatform of om cache op te schonen enzovoort.
Een probleem bij het instellen van een crontaak op je server is weten hoe je de opdrachtregel in het configuratiescherm voor de crontaak moet opmaken, zodat deze wordt geactiveerd en wordt uitgevoerd zoals het hoort.
Weet je waar je PHP-map is? Hoe zit het met de volledige URL naar het cron-bestand?
Dit zijn dingen waar de Component ontwikkelaar je niet mee kan helpen en die steevast verschillen tussen hostingbedrijven.
Een typische cron commandoregel bestaat uit drie delen en kan er ongeveer zo uitzien:
usr/local/bin/php /home/site1234/httpdocs/cli/cron.php
Het eerste deel is de route naar je PHP-map, dan komt er een extra spatie en tot slot de URL naar het script dat de cron zal uitvoeren.
Vervolgens moet je de timings ontcijferen die de cron-job activeren. Je moet beslissen hoe vaak het moet draaien en zal je hostingprovider het zelfs toestaan om zo vaak te draaien, of überhaupt? Sommige hostingbedrijven leggen beperkingen op voor hun crontaakschema's om bronnen op de server te behouden. Dit is bijna altijd het geval als u uw website op een gedeelde server host.
Meestal heeft een VPS-server of dedicated server deze beperkingen niet, omdat alle bronnen van de server van jou zijn. Maar deze servers zijn duurder dan shared hosting, waar veel kleine zakelijke en persoonlijke websites op draaien.
Een ervaren webontwikkelaar begrijpt dit, maar veel mensen die hun eigen website willen beheren, worstelen vaak met deze instellingen. Ze moeten dan uiteindelijk ondersteuning zoeken om het onderdeel goed te laten werken.
Joomla's nieuwe taakplanner neemt wat van deze pijn weg en is erop gericht om je op je website te houden, in een vertrouwde omgeving. In plaats van tot aan je ellebogen in de moeren en bouten van het configuratiescherm van je webserver te zitten.
Overzicht taakplanner
Nu we weten wat een cron job is, laten we eens kijken naar een aantal functies van Joomla's Task Scheduler (Geplande taken) en een aantal van de dingen die dit een geweldige nieuwe toevoeging aan Joomla!'s kernfuncties maken. Task Scheduler (Geplande taken) stelt u, de website-eigenaar, in staat om webgebaseerde cronjobs te maken vanuit een omgeving waarmee u al vertrouwd bent en waarbinnen u prettig kunt werken.
De taakplanner vinden
Je vindt de Taakplanner (Geplande taken) in het Systeemdashboard, dat toegankelijk is via het hoofdmenu in de sectie 'Beheren'.
Stappen Geplande taken aanmaken
- Log in op de back-end van je Joomla 4 omgeving, ga hiervoor naar de url: https://<jedomein.nl>/administrator
- Na het inloggen komt het Controle Paneel van Joomla in beeld, klik aan de linkerkant op Systeem gevolgd door Geplande taken
Ga naar het volgende hoofdstuk.
Een taak selecteren om uit te voeren
Als je de taakplanner opent en 'Nieuw' selecteert, worden de momenteel geïnstalleerde taak Plugins weergegeven. Je kunt dan de taak selecteren die je wilt plannen. Joomla 4.1 wordt standaard geleverd met 9 vooraf geïnstalleerde taakplugins, waarvan sommige nuttig zijn. Andere zijn demo-ideeën.
Stappen nieuwe geplande taak aanmaken
- Echter als je nog geen Geplande taak aangemaakt hebt, komt dit scherm in beeld:
- Klik op de knop + Nieuw of op de knop Voeg de eerste taak toe.
- De volgende taken komen in beeld. Let op: het aantal voorgedefineerde taken kan afwijken naar gelang de hoeveelheid aanvullende extensies je hebt toegevoegd.
- Klik op het plus (+) teken om een taak aan te maken. Bij elke taak staat een korte omschrijving om toe te lichten wat de taak inhoud.
Hieronder het voorbeeld om een Controle van afbeeldingsgrootte: - Onder de kop Basis velden
Vul bij Titel * een passende titel in van de Geplande taak.
Selecteer bij Uitvoering regel * de gewenste optie om aan te geven wanneer de taak utgevoerd moet worden.
Vul bij Interval in... de gewenste waarde in, in onderstaand voorbeeld wordt de taak elke dag om 02:00 uur uit gevoerd.
Vul bij Verwerkingstijd (UTC) de gewenste waarde in, in onderstand voorbeeld is dat de tijd 02:00 uur. - Onder de kop Taak parameters
Selecteer bij Map * de map waarin de afbeeldingen staan die je wil controleren / aanpassen, in onderstaand voorbeeld is dat de map Headers.
Selecteer bij Afmeting * de Breedte (of Hoogte), naar gelang je wil aanpassen, in onderstaand voorbeeld is dat Breedte
Selecter bij Limiet * (px) de juiste waarde, in onderstaand voorbeeld is dat 1080
Geef bij Maximaal aantal afbeeldingen * een getal in, in onderstaand voorbeeld is dat 15.
(Let op: Het te hoog instellen van dit aantal kan ervoor zorgen dat de taak een time-out krijgt!) - Op het tabblad Geavanceerd kunnen een aantal aanvullende opties ingesteld worden.
Zo kan er een prioriteit, logging of meldingen ingesteld worden om je te informeren indien een taak gelukt, mislukt ect. optreden. - Op het tabblad Uitvoering historie kan gecontroleerd worden hoevaak een taak uitgevoerd is.
- Op het tabblad Gegevens kan een datum opgegeven worden wanneer de taak aangemaakt wordt en de gebruiker wie de taak aangemaakt heeft.
- Op het tabblad Rechten kan aangegeven worden wie de taak mag uitvoeren.
- Vergeet niet om de taak op te slaan, klik hiervoor op Opslaan & Sluiten.
- De nieuwe taak staat nu in de lijst, je kunt de taak testen, klik hiervoor op de knop Voer test uit.
- Hieronder een print screen met de resultaten van de test.
- Via ...Acties kun je een taak:
Inschakelen -> Taak wordt ingeschakeld
Uitschakelen -> Taak wordt uitgeschakeld
Inchecken -> Taak wordt ingechecked
Ontgrendelen -> Taak wordt Ontgrendeld
Prullenbak -> Taak wordt Verwijderd
Als je een aantal extensies hebt geïnstalleerd, bijvoorbeeld Akeeba Backup, dan zijn hun Task Schedule plugins ook beschikbaar om te gebruiken.
Selecteer je taakopties
De opties die beschikbaar zijn in het nieuwe taakmenu van de plugin vereenvoudigen het instellen van de crontaak en stellen je in staat om te selecteren hoe je wilt dat de crontaak wordt uitgevoerd. Je stelt de frequentie in waarmee de crontaak moet worden uitgevoerd in de Basisvelden en als de crontaak extra instellingen of opties nodig heeft om te worden uitgevoerd, kun je deze instellen in de sectie Taakparameters. Op het tabblad Geavanceerd kun je de prioriteit voor de crontaak kiezen boven andere taken die je misschien wilt uitvoeren. Dit is ook de plek om de plugin te vertellen hoe je wilt worden geïnformeerd dat de crontaak is uitgevoerd en succesvol was, of niet.
Als je de taak eenmaal hebt ingesteld, kun je altijd teruggaan en vanuit dezelfde instellingensecties wijzigen hoe je wilt dat de taak in de toekomst wordt uitgevoerd.
Opmerking:
Het is een goede gewoonte om taken verstandig te plannen, vooral op een gedeelde server. Moet je echt een taak instellen om elke minuut het formaat van een foto aan te passen als er wekelijks maar één nieuw artikel wordt toegevoegd? Als je meerdere taken hebt lopen, spreid dan de starttijden van de cron.
Voorbeeld:
- Taak 1 draait elke maandag om 11:30 uur.
- Taak 2 wordt elk uur uitgevoerd, op het hele uur.
- Taak 3 wordt elke 4 uur en 18 minuten uitgevoerd
Door de tijden waarop je de taken uitvoert te spreiden, vraag je ook minder van je server, waardoor die serverresources beschikbaar blijven voor je website en je bezoekers tevreden blijven met een snelle website. In plaats van een website die verzandt in onnodige taken die op de achtergrond draaien.
Je kunt de taken ook laten uitvoeren wanneer er minder bezoekers op je website komen. Het is waarschijnlijk niet verstandig om 's avonds taken uit te voeren, wanneer de meeste mensen thuis op het internet zitten te surfen! Je kunt de taak ook op elk gewenst moment handmatig laten uitvoeren.
In de opties van de Taakplanner kun je kiezen hoe de taken worden uitgevoerd. Wil je dat ze worden uitgevoerd zoals aangegeven in de taakinstellingen? Of misschien is het een taak die moet worden uitgevoerd wanneer iemand een specifieke webpagina bezoekt. Je kunt zelfs een Web Cron URL instellen met de taak-ID die je wilt uitvoeren ingesteld als een query string (&ID=1). Dit betekent dat je de taak in kwestie kunt uitvoeren via een externe trigger vanaf een andere website of app.
Veel Joomla extensieontwikkelaars voegen taakplugins toe aan hun extensies om je de mogelijkheid te geven bepaalde taken te automatiseren. De populaire Joomla back-upextensie Akeeba bijvoorbeeld, bevat al taakplugins in hun Pro-versies om crons in te stellen om hun back-upprocessen uit te voeren.
Ontwerp je eigen taak-plugin
Maar je bent niet beperkt tot wat gevestigde extensieontwikkelaars je geven. Je kunt je eigen plugins ontwikkelen om gebeurtenissen te triggeren die je wilt laten gebeuren. De Plugins voor het plannen van taken volgen een eenvoudige plugin-syntaxis waarmee de taakplanner verbinding met ze kan maken en de opdrachten van de Plugin op het juiste moment kan uitvoeren. Je moet wel een goed begrip hebben van PHP om de functies te schrijven die nodig zijn om je taak uit te voeren. Task Scheduler Plugins geven je ook de functionaliteit om Joomla's nieuwe API functies op te nemen, die een enorm nieuw niveau van functionaliteit aan je website toevoegen.
Hieronder zie je een voorbeeld van Joomla's nieuwe Task Scheduler om je volgende plugin op te baseren:
Taakplanner plugin ideeën
Afgezien van de taakplugins ontwikkeld door Joomla component auteurs zijn er honderden andere potentiële toepassingen voor Joomla's nieuwe taakplanner. Alleen beperkt door je eigen verbeelding en behoefte.
Hier is een lijst van 20 ideeën om je op weg te helpen.
- De grootte aanpassen van afbeeldingen die door uw auteurs zijn geüpload zodat het ontwerp van uw website consistent blijft (zit standaard in Joomla).
- Automatisch uw sitemap regenereren om nieuwe artikelen weer te geven.
- Google pingen om te laten weten dat je nieuwe inhoud hebt gepubliceerd.
- Je dagelijks rapporten sturen over de activiteit op je website.
- Component updates automatiseren.
- Gedeeltelijke of volledige back-ups automatiseren.
- E-mails versturen naar uw gebruikers/groepen met gegevens die u uploadt naar uw Google drive.
- U een nieuw gebruikersrapport sturen.
- Je een lijst sturen van nieuwe artikelen/posts/opmerkingen die zijn ingediend.
- Om u dagelijkse logbestanden van de website te sturen.
- Om die logs vervolgens te wissen en te verwijderen.
- Artikelen uploaden als social media posts naar je social media kanalen.
- De kleurenschema's van de site of de beheerder automatisch licht/donker maken.
- Websitesjablonen wijzigen op basis van seizoensgebonden vieringen (Kerstmis, Pasen, Nieuwjaar, enz.)
- Stuur back-uparchieven naar cloudopslag.
- Node.js herstarten Als je een app hebt die node.js gebruikt op je server.
- Verzamel systeemgezondheidsinformatie en verstuur deze via e-mail.
- Stuur bezoekersgegevens naar superuser.
- De uptime/ downtime van de hosting bewaken en rapporteren.
- Stuur relevante nieuwe artikelen naar verschillende gebruikersgroepen.
Waarvoor ga jij de nieuwe taakplanner (geplande taken) fucntionaliteit van Joomla! gebruiken?
Bron: Vertaald uit de Joomla Community Magazine: Get to know the new Joomla! Task Scheduler - The Joomla Community Magazine
Met dank aan: Brendan Hedges!
Tevens de stappen zelf toegevoegd met Nederlandstalige screenshots.