Geplande taken
Geplande taken in Joomla zijn geautomatiseerde processen die op vooraf ingestelde tijden worden uitgevoerd. Deze taken helpen bij routinematige onderhoudstaken, zoals het verwijderen van oude logbestanden, het versturen van notificaties, of het aanpassen van gegevens. De geplande taken zijn beschikbaar vanaf Joomla 4.1 en hoger. In dit artikel laat ik je zien hoe je deze taken kunt instellen en welke taken er allemaal beschikbaar zijn.
Hoe stel je Geplande taken In?
- Ga naar je Joomla backend.
- Navigeer naar Systeem > Geplande taken (System > Scheduled Tasks).
Daar zie je een overzicht van alle taken die op jouw website zijn ingesteld. Afhankelijk van jouw Joomla versie en/of geschiedenis kunnen dit per website andere taken zijn. Bij een nieuwe installatie van Joomla 5 zijn deze taken actief.
In prinicipe hoef je deze taken niet aan te passen, maar we openen nu de Update notification plugin, door op de titel te klikken, om te kijken hoe de plugin eruit ziet.
Bovenaan zie je de knoppen om de taak op te slaan of te sluiten.
De Titel is een administratieve titel, deze wordt dus alleen gebruikt zodat jij snel de juiste taak kunt vinden.
In het eerste tabblad zie je de basis velden, deze velden zijn voor alle taakplugins hetzelfde.
Uitvoering regel: Selecteer hier de interval, wanneer een plugin moet worden uitgevoerd. Je kunt kiezen uit Minuten, Uren, Dagen, Maanden, Cron expressie of handmatig
Interval in .. : Je kunt hier een aantal invullen bijv. 3
De taak wordt dan uitgevoerd zoals bovenstaande instellingen. Bijvoorbeeld: Maanden en 3, dan wordt de taak 1x per kwartaal uitgevoerd.
Onder de basis velden vind je de taak velden. In dit geval kun je een emailadres invullen, maar dat is niet voor iedere taak relevant. Deze velden zijn dus per taak verschillend.
Het tabblad geavanceerd is ingedeeld in 3 secties.
Prioriteit: Hier kun je de volgorde van taken bepalen die op hetzelfde moment worden uitgevoerd. Over het algemeen heb je dit bij de gemiddelde website niet nodig.
Loggen: Wanneer een taak mislukt is het handig om te weten waarom dit gebeurd is. Bij een individuele taaklog kun je hiervoor een apart bestand aanmaken.
Meldingen: Verstuur een melding wanneer een taak gelukt is, mislukt is, fouten veroorzaak of verwijst naar onderdelen die niet meer gebruikt worden op de website.
In het 3e tabblad "Uitvoering historie" zie je wat de status van de taakplugin is. Wanneer is deze taak voor het laatst uitgevoerd, wanneer is de volgende keer dat hij uitgevoerd gaat worden. Hoe vaak de taak is uitgevoerd en hoe vaak het fout is gegaan.
Nieuwe taken toevoegen
In het taken-overzicht heb je bovenin de knop Nieuw
Controle van afbeeldingsgrootte: Deze taak controleert afbeeldingen in een specifieke map, verkleint de afbeelding wanneer deze groter is dan toegestaan. Het is een handige plugin, wanneer de beheerder of bezoekers zelf foto's op de website zet zonder rekening te houden met optimalisatie.Let op: Het oorspronkelijke bestand wordt overschreven!
Verwijder actielogs: Wanneer je bijhoudt welke acties er uitgevoerd worden op de website, dan kan de actielog snel groeien. Waarschijnlijk wil je niet alle informatie bewaren en bijvoorbeeld na 3 maanden weggooien. Daarvoor is deze plugin geschikt.
Algemene check-in (sinds Joomla 5): Ken je de slotjes voor een artikel. Vaak heeft iemand dit item verkeerd afgesloten en dan blijft deze geblokkeerd. Met deze plugin kun je de uitgecheckte artikelen na een bepaalde tijd weer activeren.
Get Verzoek: Maak een Get verzoek voor een URL die je op een bepaald moment wil uitvoeren.
Verlopen van Privacy toestemming: Gebruik je de Joomla privacy suite, dan moeten gebruikers toestemming geven voor het delen van informatie. Deze plugin beheert de toestemming en stuurt herinneringen wanneer de toestemming verloopt.
Rotate Logs: Deze plugin heeft als belangrijkste functie het automatisch roteren van logbestanden, wat betekent dat oudere logbestanden worden verplaatst of verwijderd om ruimte te besparen en de prestaties van je website te optimaliseren.
Sessie gegevens leegmaken: De functie "Sessie gegevens leegmaken" in Joomla is bedoeld om de tijdelijke sessiegegevens die door de website worden opgeslagen te verwijderen. Sessiegegevens worden gebruikt om informatie over gebruikers op te slaan tijdens hun bezoek aan de website, zoals ingelogde status, voorkeuren en andere tijdelijke gegevens.
Offline wisselen: De website wordt bij iedere verwerking van de plugin offline of online gezet. (om eerlijk te zijn kan ik geen usecase bedenken waarom je dit zou willen doen, weet jij het wel? Laat het mij weten via het contactformulier ;) )
De site online / offline zetten: Wil je op een specifiek moment de website offline zetten (wanneer deze bijvoorbeeld niet op zondag bereikbaar mag zijn om religieuse redenen) dan kan dat met deze plugins. Of moet de website op een bepaald moment gelanceerd worden en kun je dit niet handmatig doen, omdat je niet beschikbaar bent. Ook dat is mogelijk met deze plugin.
Joomla Update melding: Deze plugin in Joomla is ontwikkeld om je via e-mail op de hoogte te houden van beschikbare updates voor je Joomla-installatie.
Hoe worden geplande taken getriggerd?
Deze instellingen vind je in het takenoverzicht bij de knop "opties" rechts bovenin.
Standaard wordt een taak getriggerd door een activiteit op de website, dus wanneer een bezoeker de website opent. Dit heet Luie taakplanner.
In veel gevallen is dit prima. Maar wanneer je op dat moment geen bezoeker hebt, wordt de taak ook niet uitgevoerd. Bijvoorbeeld: Je wil iedere nacht een backup van jouw website maken om 2 uur 's-nachts. Deze taak wordt pas uitgevoerd wanneer de eerste bezoeker in de ochtend de website opent. Dat wil je niet.
Je kunt de taken ook laten triggeren door een cron-job.
Schakel de web cron in en je ziet nu een link.
Deze link kun je gebruiken in het systeem van jouw hostingpartij wat cronjobs gehandeld.
Kun je geen cronjob instellen op jouw hostingpakket of weet je niet wat de juiste instellingen zijn dan raad ik aan om https://cron-job.org te gebruiken.
Cronjobs instellen via cron-job.org
Via de website cron-job.org kun je door middel van een gratis account eenvoudige cronjobs draaien.
Nadat je een gratis account hebt aangemaakt kun je cronjobs aanmaken.
Geef een titel in.
Plak de url uit jouw Joomla website.
Vul in wanneer de cronjob uitgevoerd moet worden.
En sla het op.
Op deze manier wordt de cronjob altijd exact uitgevoerd op jouw gewenste moment.
Exitcodes / Foutcodes bij geplande taken
-2 : INVALID_EXIT = Gebruikt wanneer een routine een ongeldig (niet-integer) exitcode retourneert.
-1 : NO_EXIT = Gebruikt wanneer een routine geen exitcode retourneert.
1: RUNNING = Gebruikt wanneer de routine net begint. Dit is niet bedoeld als een exitcode.
2: NO_LOCK = Gebruikt bij het niet kunnen verkrijgen van een pseudo-lock.
3: NO_RUN = Gebruikt bij het niet kunnen uitvoeren van de taak.
4: NO_RELEASE = Gebruikt bij het niet kunnen vrijgeven van de lock of bij het niet kunnen bijwerken van het record.
5: KNOCKOUT = Gebruikt wanneer een routine wordt "uitgeschakeld" door een uitzondering.
123: WILL_RESUME = Gebruikt wanneer een taak hervat moet worden. Gebruik dit voor langlopende taken om deze op te splitsen in kleinere batches. Wanneer de laatste batch is uitgevoerd, retourneer Status::OK.
124: TIMEOUT = Gebruikt wanneer een taak een time-out heeft.
125: NO_TASK = Gebruikt wanneer een taak niet bestaat.
127: NO_ROUTINE = Gebruikt wanneer een routine ontbreekt.
0: OK = Dit is de exitcode bij succes.
Geplande taak plugins
Er zijn verschillende geplande taken plugins te vinden, sommige ontwikkelaars hebben een taak plugin gemaakt als aanvulling op hun extensie. Hieronder zal ik mijn favoriete plugins bespreken:
Akeeba Admin Tools PRO:
https://www.akeeba.com/products/admin-tools.html
PHP File Change scanner: Deze plugin scant alle php-bestanden op wijzigingen en verdachte code
Blocked Requests Log cleanup: Maakt de geblokkeerde actie log leeg
Session table repair & optimise: Repareert en optimaliseerd de #__session databasetabel
Clean up session metadata: Verwijderd verouderde sessies in de #__session databasetabel
Cache clean-up: Cache opschonen
Delete inactive users: Verwijder gebruikers op basis van jouw criteria (nooit ingelogd of account niet geactiveerd voor een bepaalde periode)
Clean up the temporary directory: Verwijder alle bestanden in de tmp-map
Auto-import configuration: Importeer de configuratie vanaf een centraal bestand
Akeeba Backup PRO:
https://www.akeeba.com/products/akeeba-backup.html
Take a Backup: Maakt een backup via een geselecteerd profiel
CLI-only Backup: Een backup wordt alelen uitgevoerd als deze via CLI wordt getriggerd
SchuWeb Sitemap:
https://extensions.joomla.org/extension/schuweb-sitemap/
Update sitemap XML: Deze sitemap-extensie maakt een /sitemap.xml bestand aan. De taakplugin zorgt ervoor dat het bestand wordt geupdate met alle pagina's, afbeeldingen en nieuwsberichten.
DPMedia:
https://joomla.digital-peak.com/documentation/dpmedia/joomla-plugins/task
Media Sync: Synchroniseer externe met lokale bestanden
Sync Local media files: Synchroniseer lokale bestanden met cloud services
DPCases:
https://joomla.digital-peak.com/documentation/dpcases/plugins/task
Stuur een melding naar de auteur wanneer een case gesloten gaat worden
DPCalendar:
https://joomla.digital-peak.com/documentation/dpcalendar/joomla-plugins/task
Sync Events: Synchoniseer de website met externe kalenders
Send ticket certificates: Verstuur een certificaat wanneer het evenement is afgelopen
Booking deletions: Verwijder boekingen met bepaalde criteria
Event deletions: Verwijder evenementen met bepaalde criteria
Event reminders: Verstuur herinneringen
HikaShop:
Massaction: Voer een bulkactie uit (https://www.hikashop.com/marketplace/product/284-task-massaction.html)
Task Report: Maak een rapportage en verstuur deze als bijlage per email (https://www.hikashop.com/marketplace/product/283-task-report.html)
Zero24 ExtensionUpdates:
https://extensions.joomla.org/extension/extensionupdates/
Controleert op updates van extensies en verzendt een e-mail zodra deze beschikbaar is.
Zero24 TaskCheckin:
https://extensions.joomla.org/extension/taskcheckin/
Deze plugin checkt alle items in (alleen voor Joomla 4, want in Joomla 5 zit een core plugin die hetzelfde doet)
Zero24 ReviewContentNotification:
Deze Joomla plugin controleert of een artikel gedurende een bepaalde tijd niet is gewijzigd. De auteur wordt geinformeerd en hem te vragen de inhoud van het artikel nog klopt.
TLWebdesign Auto Delete Files:
https://github.com/TLWebdesignNL/Auto-Delete-Files-Task-Scheduler-Plugin
Deze plugin controleert bestanden op laatste bewerking (PHP's filemtime function) en verwijderd bestanden die ouder zijn dan de ingestelde tijd.
Kick Manage Article:
https://github.com/Kicktemp/plg_task_kickmanagearticle
Verplaats een artikel naar een andere categorie wanneer deze ouder is dan X dagen
CCC Timewarp:
https://coolcat-campus.com/en/extensions/joomla-task-scheduler-plugin-ccc-timewarp
Pas een artikel aan (categorie, speciaal, status, rechten) wanneer deze ouder is dan X dagen, deze plugin werkt ook met custom fields data.
Reset Hits:
https://github.com/woluweb/plg_task_resethits
Zet de artikel-weergaves op 0, handig om te gebruiken wanneer je een lijstje wil tonen met de populaire artikelen van deze maand.
Delete Trashed:
https://www.alikonweb.it/extensions/task-plugin-delete-trashed
Verwijderd de items uit de prullenbak (niet alleen artikelen, maar ook categorieen, modules, verwijzingen etc.)
Force password reset:
https://myjoomlacoder.com/joomla-task-plugins/joomla-force-password-reset-task-plugin
Zorgt ervoor dat gebruikers van geselecteerde groepen hun wachtwoord periodiek opnieuw in moeten stellen. Voor verschillende gebruikersgroepen kun je verschillende periodes instellen. Wanneer de taak wordt uitgevoerd, wordt de gebruiker gedwongen zijn wachtwoord opnieuw in te stellen na de volgende login
End Users Sessions:
https://myjoomlacoder.com/joomla-task-plugins/joomla-end-users-sessions-task-plugin
Gebruikers worden gedwongen opnieuw in te loggen als Onthoud mij niet is ingeschakeld. Je kunt selecteren of je het voor zowel de front- als de backend of alleen de voorkant wil toepassen.
Manage Inactive Users:
https://myjoomlacoder.com/joomla-task-plugins/joomla-manage-inactive-users-task-plugin
helpt u bij het beheren van inactieve gebruikers. Met inactieve gebruikers bedoelen we: Gebruikers die na registratie nooit hebben ingelogd. Gebruikers die een bepaalde periode niet hebben ingelogd. Gebruikers die hun account niet hebben geactiveerd. Je kunt kiezen hoe je ermee omgaat door ze na een bepaalde periode te blokkeren of te verwijderen.
FT Auto Update:
https://extensions.joomla.org/extension/tf-auto-update/
Met deze plugin kun je gegevens in de database aanpassen of verwijderen.
Migrate user profiles to custom fields:
https://kicktemp.shop/produkte/kickprofiletocustomfield
Verplaats een oud Joomla-gebruikersprofiel naar custom fields. (deze custom fields zijn makkelijker te gebruiken in bijvoorbeeld Yootheme elementen)
Wil je meer weten?
Ben je benieuwd of ik de geschikte partner voor jouw project ben? Kijk dan eens in mijn portfolio, bekijk wat mijn klanten vertellen of neem direct contact met mij op.
Over Jeroen
Ik werk sinds 2006 met het Joomla! CMS. Naast het bouwen en onderhouden van Joomla! websites en webshops ben ik ook bekend met zoekmachine-optimalisatie (SEO), Joomla hosting en het ontwikkelen van templates en extensies. Verder ben ik een frequente bezoeker en spreker van de JoomlaDagen en verschillende Joomla gebruikersgroepen.
Ik zet me in voor de Joomla! community als lid van het Extensions Directory team en de organisatie van Joomla gebruikersgroep Breda en JoomlaDagen Nederland. Kortom: Ben je op zoek naar een Joomla Specialist, neem dan eens contact met mij op!