MySQL Event Scheduler
Wenn große Webservices betrieben werden, müssen fast immer Cronjobs laufen, um automatisiert regelmäßige
Datenbankaufgaben abzuarbeiten. In der Regel wird dazu ein (PHP-) Script geschrieben, dass regelmäßig durch einen Cronjob gestartet wird und anschließend eine Verbindung zur Datenbank aufbaut. Oft vergessen wird die in MySQL eingebaute Event Scheduler Funktionalität.
Doch wie funktioniert der MySQL Event Scheduler?
Ganz einfach: Zu erst muss die Funktion eingeschaltet werden:
SET GLOBAL event_scheduler = ON;
Anstatt von „ON“ kann man auch eine „1“ schreiben. Jetzt ist die MySQL Event Scheduler aktiviert.
Als Nächstes wird ein neuer Event angelegt:
Möchten man beispielsweise jeden Tag den zu diesem Zeitpunkt veralteten (äter als 10 Tage) Cache löschen, so kann das folgende MySQL-Statement helfen.
CREATE EVENT Ereignis ON SCHEDULE EVERY 1 DAY DO DELETE FROM cache WHERE created_date < = DATE_SUB(NOW(), INTERVAL 10 DAY) ;
Hinweis: die Funktion DATE_SUB zieht von einem Datum eine bestimmte Zeit ab, hier 10 Tage.
Ereignisse können natürlich auch geändert oder gelöscht werden:
Alter Event
ALTER Ereignis ON SCHEDULE EVERY 5 HOUR STARTS TIMESTAMP + 3 HOUR
Drop Ereignis
Möchte man alle aktuellen Ereignisse auflisten, so kann man die MySQL-Funktion:
SHOW EVENTS;
Vorteile gegenüber der Cronjob-Variante
- Es besteht keine Abhängigkeiten zum (möglicherweise externen) Cronjobanbieter.
- Für das (PHP) Script muss kein Webserver installiert sein
Schreibe einen Kommentar