Bei der Pflege Ihrer WordPress-Website geht es nicht nur um die Aktualisierung von Themes und Plugins oder die Erstellung neuer Inhalte. Ein ebenso wichtiger, aber oft übersehener Aspekt ist die effiziente Datenbankverwaltung. Insbesondere zwei Tabellen, die sehr umfangreich werden können und die Leistung Ihrer Website beeinträchtigen können, sind actionscheduler_actions e actionscheduler_logs.
Was ist der Action Scheduler?
Der WordPress Action Scheduler ist eine leistungsstarke Bibliothek, die von Entwicklern genutzt wird, um Hintergrundaufgaben in WordPress zu planen und auszuführen. Er wird vor allem von Plugins wie WooCommerce verwendet, um zeitgesteuerte oder wiederkehrende Aufgaben zuverlässig zu verarbeiten. Beispiele für solche Aufgaben sind das Senden von E-Mails, das Löschen von temporären Dateien oder das Synchronisieren von Daten mit externen Diensten.
Die Hauptvorteile des Action Schedulers sind:
- Ermöglichung von asynchronen Aktionen, wodurch die Benutzerfreundlichkeit verbessert wird.
- Effizientes Queue Management, das auch bei großen Datenmengen stabil bleibt.
- Die Möglichkeit, fehlgeschlagene Aufgaben zu überwachen und neu zu starten.
Wie funktioniert der Action Scheduler?
Der Action Scheduler arbeitet, indem er Aktionen (Tasks) in einer Queue speichert und diese bei bestimmten Ereignissen oder Zeitpunkten ausführt. Er unterscheidet sich von WordPress' standardmäßigem Cron-System, da er eine präzisere Kontrolle über geplante Aufgaben bietet.
Zentrale Komponenten:
- Aktionen: Dies sind die spezifischen Aufgaben, die ausgeführt werden sollen, wie z. B. eine API-Anfrage oder das Verarbeiten einer Bestellung.
- Queue: Alle geplanten Aktionen werden in einer Warteschlange gespeichert.
- Worker: Diese führen geplante Aktionen basierend auf ihrem Zeitplan aus.
Tabellen des Action Schedulers
Der Action Scheduler verwendet mehrere Datenbanktabellen, um Informationen zu geplanten und ausgeführten Aktionen zu speichern. Diese Tabellen sind essenziell für die Funktionalität des Systems und enthalten die folgenden:
- wp_actionscheduler_actions: Speichert Details zu jeder Aktion, wie den Typ, Status (ausstehend, abgeschlossen, fehlgeschlagen) und den nächsten geplanten Ausführungszeitpunkt.
- wp_actionscheduler_claims: Diese Tabelle verwaltet, welche Aufgaben von welchen Workern bearbeitet werden, um sicherzustellen, dass Aufgaben nicht mehrfach ausgeführt werden.
- wp_actionscheduler_groups: Aktionen können in Gruppen organisiert werden, und diese Tabelle speichert Informationen zu diesen Gruppen.
- wp_actionscheduler_logs: Protokolliert jede Ausführung von Aktionen, einschließlich Fehlermeldungen oder Erfolgsnachrichten.
Der sichere und einfache Weg zur Bereinigung:
in der functions.php des Child-Themes den folgenden Filter hinzufügen:
add_filter( 'action_scheduler_retention_period', function() { return DAY_IN_SECONDS * 14; } );
Alternative mit weiterem Reinigungsschritt
/**
* Change Action Scheduler default purge to 2 days
*/
function charmoney_gist_action_scheduler_retention_period() {
return 2 * DAY_IN_SECONDS;
}
add_filter( 'action_scheduler_retention_period', 'charmoney_gist_action_scheduler_retention_period' );
/**
* Manually purge additional old completed AS records to prevent runaway table growth.
*/
function charmoney_gist_as_rq_extra_purge() {
$clean = 1000;
$cleaner = new \ActionScheduler_QueueCleaner( null, $clean );
$cleaner->delete_old_actions();
}
add_action( 'action_scheduler_run_queue', 'charmoney_gist_as_rq_extra_purge', 999 );
Fazit
Der WordPress Action Scheduler ist ein unverzichtbares Tool für Entwickler, die komplexe Aufgaben in WordPress effizient und zuverlässig automatisieren möchten. Durch die Nutzung der oben genannten Tabellen bietet er eine robuste Grundlage für die Verwaltung und Überwachung von Aufgaben. Seine Flexibilität und Stabilität machen ihn zu einer bevorzugten Wahl für Plugins wie WooCommerce und andere Anwendungen, bei denen zeitgesteuerte oder wiederkehrende Tasks erforderlich sind. Besonders aber bei großen webseiten sollte regemäßig eine Wartung durchgeführt werden.