iToverDose/Software· 22 APRIL 2026 · 11:39

Magento 2 Cron-Optimierung: Lass Hintergrundjobs nicht dein Geschäft ruinieren

Magento 2 ist stark von Hintergrundjobs abhängig. Neuindizierung, Newsletter-Versand, Session-Bereinigung, Bearbeitung von Auftragsschlangen – alles läuft über Cron. Wenn Ihre Cron-Konfiguration falsch eingerichtet oder überladen ist, kommt es zu unerklärlichen Verlangsamungen, blockierten Aufträgen und Wachstumsproblemen.

DEV Community3 min0 Kommentare

Magento 2 ist stark von Hintergrundjobs abhängig. Reindexierung, Newsletter-Versand, Bereinigung von Sitzungen, Bearbeitung von Auftragsschlangen – alles läuft über Cron. Wenn Ihre Cron-Konfiguration falsch eingestellt oder überlastet ist, kommt es zu unerklärlichen Verlangsamungen, hängengebliebenen Aufträgen und wachsenden Datenbanktabellen. Das Schlimmste: Es bleibt unsichtbar, bis etwas kaputtgeht. Dieser Leitfaden zeigt, wie Sie die aktuelle Cron-Leistung überprüfen, häufige Fehlkonfigurationen beheben und verhindern, dass Hintergrundjobs mit dem Frontend-Verkehr konkurrieren.

Warum die Cron-Leistung wichtiger ist, als Sie denken In einem stark frequentierten Magento-Shop laufen Dutzende von Cron-Jobs alle paar Minuten. Jeder Job öffnet Datenbankverbindungen, lädt das Magento-Framework und führt oft teure Operationen wie die Neuberechnung von Katalogpreisen oder Aktualisierungen von Kundensegmenten durch. Wenn sich diese Jobs stapeln – weil ein vorheriger Lauf nie beendet wurde oder sie zu aggressiv geplant sind –, führt dies zu:

Mehrere Cron-Prozesse laufen gleichzeitig Datenbank-Sperrenkonflikte verlangsamen Frontend-Abfragen PHP-FPM-Arbeitererschöpfung, da Cron mit Webanfragen konkurriert Die Tabelle cron_schedule wächst auf Millionen von Zeilen Eine gesunde Cron-Konfiguration führt Jobs nach einem vorhersehbaren Zeitplan aus, räumt auf und lässt nie zu, dass ein einzelner hängengebliebener Job die Warteschlange blockiert.

Schritt 1: Überprüfen Sie die aktuelle Cron-Leistung Beginnen Sie mit einem direkten Blick auf die Warteschlange: php bin/magento cron:status Dann führen Sie eine direkte Datenbankabfrage für ein detaillierteres Bild durch: SELECT job_code, status, COUNT(*) as count FROM cron_schedule WHERE scheduled_at > NOW() - INTERVAL 1 HOUR GROUP BY job_code, status ORDER BY count DESC;

Achten Sie auf: Jobs, die länger als ihre erwartete Laufzeit im Status "running" hängen Dutzende ausstehende Einträge für denselben Jobcode (Stau) Jobs, die sich ständig im Status "missed" befinden Eine gesunde Ausgabe zeigt meist Erfolge mit einigen wenigen ausstehenden Jobs für anstehende Läufe.

Schritt 2: Überprüfen Sie, ob Cron tatsächlich läuft Das klingt offensichtlich, aber falsch konfigurierte System-Crontabs sind eine der häufigsten Ursachen für Probleme bei Magento-Installationen. Überprüfen Sie Ihre Crontab: crontab -l Sie sollten etwas wie Folgendes sehen:

  • /usr/bin/php /var/www/html/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule"
  • /usr/bin/php /var/www/html/bin/magento cron:run --group="index"

Wenn Sie nichts sehen oder nur einen Eintrag, der beide Gruppen zusammen ausführt, ist das ein Problem. Magento 2 hat mehrere Cron-Gruppen (Standard, Index, Consumers) und profitiert davon, wenn sie unabhängig voneinander laufen. Die Index-Gruppe enthält Reindexierungsaufgaben, die lange dauern können. Wenn sie sich einen Prozess mit der Standardgruppe teilen, blockieren sie zeitkritische Jobs wie Auftragsabwicklung und E-Mail-Versand.

Schritt 3: Teilen Sie Cron-Gruppen auf Die richtige Einrichtung führt jede Hauptgruppe nach ihrem eigenen Zeitplan aus:

Standardgruppe – jede Minute

  • /usr/bin/php /var/www/html/bin/magento cron:run --group="default" >> /var/log/magento-cron-default.log 2>&1

Indexgruppe – alle 5 Minuten reicht normalerweise

/5 * /usr/bin/php /var/www/html/bin/magento cron:run --group="index" >> /var/log/magento-cron-index.log 2>&1

Consumers-Gruppe – nur nötig, wenn Message Queues verwendet werden

  • /usr/bin/php /var/www/html/bin/magento cron:run --group="consumers" >> /var/log/magento-cron-consumers.log 2>&1

Die Trennung der Gruppen gibt Ihnen unabhängige Kontrolle über jede Kategorie von Jobs. Sie können die Reindexierung verlangsamen, ohne die auftragsbezogenen Cron-Jobs zu beeinflussen, und umgekehrt.

Schritt 4: Bereinigen Sie die Tabelle cron_schedule Standardmäßig behält Magento die Cron-Verlaufsdaten unbegrenzt bei. Bei einem Shop, der ein Jahr oder länger läuft, kann diese Tabelle leicht Millionen von Zeilen erreichen, wodurch jeder Cron-Lauf langsamer wird, da er in eine übergroße Tabelle abfragt und einfügt.

Überprüfen Sie die aktuelle Tabellengröße: SELECT COUNT(*) FROM cron_schedule; Wenn sie über ~50.000 Zeilen liegt, haben Sie ein Problem. Bereinigen Sie sie: php bin/magento cron:install --force Konfigurieren Sie dann die automatische Bereinigung in app/etc/config.php oder über die Admin-Oberfläche unter Stores → Configuration → Advanced → System → Cron (Geplante Aufgaben): <config> <default> <system> <cron> <default> <history_clean

KI-Zusammenfassung

Learn how to audit, split, and clean Magento 2 cron jobs to prevent database bloat and frontend slowdowns. Boost store speed with these proven tuning tips.

Kommentare

00
KOMMENTAR SCHREIBEN
ID #NICJAD

0 / 1200 ZEICHEN

Menschen-Check

8 + 2 = ?

Erscheint nach redaktioneller Prüfung

Moderation · Spam-Schutz aktiv

Noch keine Kommentare. Sei der erste.