• Gelöst orpheus55

    (@orpheus55)


    Liebe alle,

    meine frisch online gegangene Website meldet in WP zum Zustand der Seite:

    Das geplante Ereignis, action_scheduler_run_queue, wird zu spät ausgeführt. Ihre Website funktioniert noch, aber das kann darauf hindeuten, dass die Planung von Beiträg …

    Ich habe hier im Forum nachgelesen, verstehe das aber nicht wirklich. Immerhin dachte ich mir, ich installiere WP Crontrol, und da taucht als erster Eintrag dieses action_scheduler… auf. Ob ich das einfach mal pausieren kann? Oder wozu mag das gut sein?

    Die Seite, für die ich Hilfe brauche: [Anmelden, um den Link zu sehen]

Ansicht von 5 Antworten – 1 bis 5 (von insgesamt 5)
  • Thread-Starter orpheus55

    (@orpheus55)

    Na, wer sagt‘s denn. Inzwischen weiß ich, dass dieses Phänomen von WP SMTP Mail ausgeht. Ich verstehe nur nicht, warum da auf einmal ein Problem daraus entsteht. Habe das Mailprogramm früher auf einer anderen Webseite ohne solche Fehler ausgeführt.

    Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    Manchmal möchte man, dass zum Beispiel eine Veröffentlichung eines Beitrags erst zu einem bestimmten Zeitpunkt erfolgt („nächsten Mittwoch, 0:00 Uhr“) oder ein Backup regelmäßig („an jedem Montag um 3:50 Uhr“) ausgeführt wird. Auf Unix-basierten Servern (die meisten Webserver laufen auf Linux) hast du dazu die Möglichkeit, einen so genannten Cron-Job einzurichten. Ein Programm gleicht laufend die aktuelle Zeit mit einer Liste chronologisch sortierter Aufgaben ab und führt sie bei Fälligkeit aus.

    Wenn sich viele Kunden im Shared Hosting einen Webserver teilen, kann die Einrichtung von Cron-Jobs die Performance des Servers beeinträchtigen. Stell dir dazu einfach vor, dass jeder zweite Kunden alle drei Minuten ein Skript ausführen lässt, was CPU und RAM des Servers auslastet. Deshalb erlauben viele Webhostern ihren Kunden nicht, eigene Cron-Jobs einzurichten.

    Damit WordPress auf möglichst vielen Servern problemlos läuft und trotzdem Aufgaben zu festgelegten Zeiten ausgeführt werden können, haben sich die Entwickler in ihrer Weisheit für eine Lösung entschieden, die Pseudo-Cron genannt wird: Sobald jemand einen Seite oder einen Beitrag deiner Website aufruft, wird rasch geprüft, ob dabei ein Zeitpunkt überschritten wurde, zu dem eine Aufgabe anstand. Die Warteschlange für anstehende Aufgaben ist die in der Fehlermeldung genannte action_scheduler_run_queue.

    Nehmen wir nun an, deine Website behandelt ein Thema, das einige wenige Leute brennend interessiert, aber nicht mehrmals täglich aufgerufen wird. Die Fehlermeldung „Das geplante Ereignis, action_scheduler_run_queue, wird zu spät ausgeführt.“ besagt dann, dass seit dem letzten Besuch schon einige Aufgaben abgearbeitet werden sollten. Da aber erst einige Tage später wieder jemand die Website besucht, funktioniert der Pseudo-Cron nicht zuverlässig. Darauf wirst du nun hingewiesen.

    Was macht man jetzt damit? Entweder entscheidest du, dass dieser „Fehler“ schlicht nicht tragisch ist und behältst alles so bei, wie es ist. Oder du richtest irgendwo einen Cron-Job ein (z.B. bei https://cron-job.org/de/), der in regelmäßigen Abständen (z.B. viertelstündig) eine PHP-Datei von WordPress abruft:

    wget -q -O - https://domain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1#

    domain.com musst du hierbei natürlich mit der Domain deiner eigenen Website ersetzen.

    Damit es keine Überschneidungen mit dem Pseudo-Cron von WordPress gibt, solltest du den internen Dienst außerdem durch einen Eintrag in der wp-config.php deaktivieren. Dazu trägst du oberhalb von /* That's all, stop editing! Happy publishing. */ folgende Zeile ein:

    define ('DISABLE_WP_CRON', true);

    Übrigens kann auch die Verwendung von Cache-Plugins dazu führen, dass der Pseudo-Cron nicht ausgeführt wird, weil statt einer neuen Datenbankabfrage die zwischengespeicherten HTML-Dokumente an die Webseitenbesucher ausgeliefert werden. Je nach eingestellter Dauer, wann der Cache verfällt, kann selbst eine stark frequentierte Website dann über einen längeren Zeitraum die Warteschlange mit terminierten Aufgaben nicht abarbeiten. Auch hier hilft dann die Einrichtung eines richtigen Cron-Jobs, was sich übrigens auch positiv auf die Performance der Website auswirkt.

    Thread-Starter orpheus55

    (@orpheus55)

    Danke dir sehr herzlich für diese ausführliche Erläuterung. Ich denke, dass ich möglicherweise ansatzweise verstehe, worum es geht. Was der Aufruf oder Nicht-Aufruf einer Seite allerdings mit Aufgaben zu tun hat, die regelmäßig abgearbeitet werden müssen, leuchtet mir nicht ein.

    Dann lasse ich erstmal alles, wie es ist. Es wundert mich nur, dass ich auf der alten Website, auf der auch Updraft und WP SMTP Mail liefen, solche Probleme nicht hatte.
    Jedenfalls noch einmal herzlichen Dank für die ganze Mühe.

    Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    Was der Aufruf oder Nicht-Aufruf einer Seite allerdings mit Aufgaben zu tun hat, die regelmäßig abgearbeitet werden müssen …

    Versuchen wir’s mal so: Da läuft kein Uhrwerk (oder CountDown, Zähler, …) und irgendwann klingelt was, sondern die Skripte zum Zeitabgleich müssen von irgendwas ausgelöst werden. Und dieses irgendwass ist eben der Besuch einer Webseite → Pseudo-Cron. Man tut nur so, als würde eine Uhr laufen. –
    Keine Besucher, kein Trigger, kein Zeitabgleich, keine Ausführung. 🥲
    Besucher da, Zeitabgleich: aha!Aufgabe verpasst, schnell nachgeholt, Skript ausgeführt. 😀

    Es wundert mich nur, dass ich auf der alten Website, auf der auch Updraft und WP SMTP Mail liefen, solche Probleme nicht hatte.

    Das kann verschiedene Gründe haben. Zum einen wird das noch nicht soo lange angezeigt (OK, das ist relativ. WP_Site_Health::wp_cron_scheduled_check() gibt es seit WordPress 5.4, das im März 2020 eingeführt wurde). Zum anderen setzt die Fehlermeldung voraus, das längere Zeit niemand die Webseiten aufgerufen hat oder ein Cache verwendet wird, der statt dessen zwischengespeicherte Seiten ausgibt. Uuund dann muss dir die Fehlermeldung auch noch auffallen.

    Thread-Starter orpheus55

    (@orpheus55)

    Sehr cool. Das verstehe ich dann schon. Gut! Schönen Dank für die Geduld.

Ansicht von 5 Antworten – 1 bis 5 (von insgesamt 5)
  • Das Thema „Geplantes Ereignis wird zu spät ausgeführt“ ist für neue Antworten geschlossen.